Java逆向解密1
背景描述:程序员小张不小心弄丢了加密文件用的秘钥,已知还好小张曾经编写了一个秘钥验证算法,聪明的你能帮小张找到秘钥吗?
注意:得到的 flag 请包上 flag{} 提交
题目附件:点击这里下载
反编译
我们通过jd-gui反编译获得的.class文件,代码如下:
1 | import java.util.ArrayList; |
我们发现这个文件中包含着两个函数,一个是Reverse另外一个是Encrypt,其中Reverse函数让我们输入flag,但是我们哪里有flag?
我们接着往下看,Encrypt中传入形参(也就是我们的输入)并对其进行以下操作:
1 | for (int i = 0; i < arr.length; i++) |
然后在将其与KEY进行ASCII码对比,如果正确则输出Congratulations,否则输出Error
脚本编写
很显然,由上述我们可知,flag[i]+64 ^ 0x20=KEY[i];
现在我们知道KEY,所以flag[i]=KEY[i]-64 ^ 0x20;,我们使用c语言编写代码来实现:
1 |
|
得到flag

Hexo博客NJK主题的相关文章智能推荐插件hexo-article-recommender进阶配置(DIY)
DIY客制化文章底部“文章推荐模块”,本篇文章介绍Nunjucks(NJK)模板的hexo主题(如NexT主题)如何实现。hexo-article-recomm
Hexo博客EJS主题的相关文章智能推荐插件hexo-article-recommender进阶配置(DIY)
DIY客制化文章底部“文章推荐模块”,本篇文章介绍EJS模板的hexo主题如何实现。hexo-article-recommender为Hexo博客提供本地化智能
Hexo博客文章底部添加推荐相关文章:使用hexo-article-recommender插件实现
hexo-article-recommender为Hexo博客提供本地化智能文章推荐:融合语义、标题、标签、分类与发布时间五维特征,支持三种策略切换,自动生成带
Java 数组—JAVA语言基础
数组是最为常见的一种数据结构,是相同类型的用一个标识符封装到一起的基本类型数据序列或对象序列。(本文章参考《Java从入门到精通 第5版 明日科技》。
--- over ---
- 本文链接: https://i-nmb.cn/Android-reverse-1st.html
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。