首页
论坛
课程
招聘
[原创][分享]不用分析算法 直接用ida和od就能破解
2021-11-2 01:28 4624

[原创][分享]不用分析算法 直接用ida和od就能破解

2021-11-2 01:28
4624

题目在附件里
第一次输入的密码非常好办,没有必要用od了,直接暴力破解就行了 !



用python编写脚本就能得到:123321
第二部分才是真正有意思的地方,如果直接用脚本破解不好分析,跟进分析函数发现 这个程序的flag应该是在一个rtf文档里面,用od打开文件 再用ida打开文件,两个同时分析:
图片描述
从ida中可以发现,输入第二次密码的部分的内存区域位于004017CC附近,在od中定位到相应的位置:
图片描述
定位成功!
然后在返回ida中查看末尾代码:
图片描述
发现只有当_strcmpi函数的返回值为0,sub_40100F函数的返回值为1的时候,程序才不会报错,正确执行完(这就是需要从od中修改的东西了!)
在od中定位到两个关键函数:
图片描述
在两个关键函数之间发现了一条jnz short指令 ,跳出了程序的关键位置,所以第一个函数不用跟进分析了,返回值一般是放在eax里面,直接把jnz指令用nop空指令替换掉就行啦,这样就能成功进入sub_40100F函数
这个sub_40100F函数就要跟进分析了:
在跟进分析过程中 ida和od同时打开就不会出现跳转错误的情况了:
图片描述
定位成功:
图片描述
之前的分析已经提到过sub_40100F函数的返回值需要为1,要想返回值为1,就要执行完closehandle函数
图片描述
所以直接把text——jnz指令替换为jmp指令就可以了
直接f9运行程序,第一次输入暴力破解得到了123321,第二次随便输入6个数字就会生成一个rtf文件 打开就是flag:Flag{N0_M0re_Free_Bugs}


[2022夏季班]《安卓高级研修班(网课)》月薪三万班招生中~

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回