BUUCTF RE reverse_3 小白的题解
新人第一次发帖,作为一个逆向小白,斗胆发布自己的一个做题题解,欢迎各位大佬们批评指正!一.查壳,查看文件信息
无壳,32位PE文件,可使用ida分析
二.静态分析
用ida打开,在EXPORT窗口找到Entry point
打开start函数
F5反编译,一直进入return的函数
在j_exit函数附近找到了主函数,进入invoke_main中
v0,v2和v3分别传main的argc,argv参数
终于来到最重要的
将几个显然的函数重命名,分析后得
输入flag后,经过sub_4110BE函数加密后,再经过一个循环后于Str2比较
则
Str2就是加密后得flag了,其中flag,j
减去循环得e2lfbDB2ZV95b3V9
Str为输入 -> input, Destination是flag经过加密后 -> encoded_flag
Str -> flag, sub_4110BE为加密函数 -> encode
接下来进入encode函数
经过分析后,将几个关键变量改名
a1,v13 -> input,a2,v10-> 为input的长度。
v12为最后的返回值,即为加密过后的flag
aAbcdefghijklmn为字符串,一个哈希表
然后switch部分就是加密的部分
本来准备一点点按照这个加密算法反推回去,但经朋友的提点后,看到这个哈希表,认定这是一个base64的编码
结果还真是。。果然还是太菜了
flag:
最后附上pdf格式的,在这发的图片好像有点不太清晰
谢谢啦,楼主辛苦了,但愿资源长久{:1_919:}{:1_919:} 谢谢分享 哈哈主要是娱乐娱乐 也不算是太大问题吧 毕竟也没破坏游戏的公平性 自己看看的哈哈 淦,看不懂,呜呜呜 非常棒的学习知识,谢谢大佬
页:
[1]