Reversing.Kr replace题解
第一次尝试做题,参考了众多大神的讲解,终于把这题解出来了。
我们先运行一下replace.exe,出现下面的框,什么都不输或输错点击check会异外终止。这题估计就是要让Wrong变成correct或right
我们先进行一下静态分析,通过ida打开,在String window中找目标字符串
可以看到是"Correct!"。然后单击这一行,会跳到下面这个界面
鼠标右键correct那行,点击list cross references to,会有一个弹窗xrefs to String,选定后点击ok,就会跳到下面这张图
我们可以看到流程图中没有一个流程是可以到我们要显示的字符串。
接下来我们进行动态分析,打开OllyDbg
我们先定位到correct字符串所在地址,在ida方框左下角可以看到是401073
我们可以看到在401073的指令前有两条jmp指令,说明肯定不会执行401073这条指令,和ida中流程图显示的一样。
在图上的地方按下F2设置断点(40104C是输入开始的地方)
现在开始运行程序,按F9,输入123(7bh),点check,然后F8单步执行
当执行完40105A的指令后,EAX=7B,说明输入的数据被放到了EAX中
单步执行到jmp replace.404609,程序会跳转到404609继续执行
这里还有一个改变,EAX的值变为了60160646
注意40469F这条指令,它将C39000C6这条机器码放入了40466F中
这是40466F中的指令,4046A9这条指令调用了存放在40466F中的子程序,这条语句是将90这个机器码放入DS:[EAX]中。(90是nop的机器码),也就是改变ds:[eax]中的指令,使之变为nop。
接着你会发现已经单步执行不了,程序出现异常停止。做到现在会发现仍然没有头绪。
我们换一个输入重新按照上面的步骤再做一遍,这次我们输入0
这次我们发现最后的EAX变为601605CB,改变是在mov eax,dword ptr ds:[4084d0]后,我们跳转到4084d0去看一下
我们看前面的十六进制数(注意一定要看的是前面的机器码,要不然会找不到flag),是将601605CB放入EAX。我们回头看一下输入123的情况
我们将两个数相减刚好可以得到7B,说明4084d0中的数是由601605CB+输入的数得到的。
这里就是需要我们思考的地方:要如何才能把jmp这条指令给跳过呢,结合上面运行(40466F处的子程序),我们其实可以很容易想到,我们将nop指令放到401071的位置就可以了,那EAX的值又是由我们输入的值加601605CB得到,所以我们输入的数是401071-601605CB=A02A 0AA6(将它转换成十进制数是2687109798)
输入正确答案后401071和401072都变成了nop(因为404609处的子程序调用了两次40466F处的字程序,中间还将EAX+1,所以401072也变成了nop)
运行成功截图
Reversing.Kr replace题解相关推荐
- Reversing.kr Replace
程序运行: 只能输入数字序列,不能输入字母和字符 查壳,无壳,标准c++程序: 我在想,能不能爆破,嘿嘿嘿,但是我不会写相应的脚本. IDA打开,String,找到 "Correct! ...
- 170925 逆向-Reversing.kr(Replace)
1625-5 王子昂 总结<2017年9月25日> [连续第358天总结] A. Reversing.kr-Replace B. Replace 先查一波壳,还好没有 运行,是一个GUI程 ...
- 170929 逆向-Reversing.kr(Ransomware)
1625-5 王子昂 总结<2017年9月29日> [连续第362天总结] A. Reversing.kr-Ransomware B. Ransomware readme提示解密文件,运行 ...
- 171003 逆向-Reversing.kr(CSHOP)
1625-5 王子昂 总结<2017年10月3日> [连续第368天总结] A. Reversing.kr-CSHOP B. CSHOP 这次只有一个文件,没有可怕的ReadMe了 打开是 ...
- 171002 逆向-Reversing.kr(AutoHotKey)
1625-5 王子昂 总结<2017年10月2日> [连续第367天总结] A. Reversing.kr-AutoHotKey B. AutoHotKey 解压出来一个ReadMe一个e ...
- 171013 逆向-Reversing.kr(AutoHotKey2)
1625-5 王子昂 总结<2017年10月13日> [连续第378天总结] A. reversing.kr B. AutoHotKey2 解压出来又来了ReadMe 不过这次比较简单,翻 ...
- 171019 逆向-Reversing.kr(MetroApp)
1625-5 王子昂 总结<2017年10月19日> [连续第384天总结] A. reversing.kr B. MetroApp 这次的逆向处理了很多麻烦,学到了不少关于MetroAp ...
- reversing.kr学习之路-ransomeware
ransomeware - writeup 题目来源 http://reversing.kr 题目知识点:upx + 花指令 + 堆栈不平衡 + exe特征码提取key 前言 文章只是记录一下自己在r ...
- 170926 逆向-Reversing.kr(ImagePrc)
1625-5 王子昂 总结<2017年9月26日> [连续第359天总结] A. Reversing.kr-ImagePrc B. ImagePrc 首先查壳,运行发现是一个光秃秃的窗口, ...
最新文章
- IDEA配置GitHub报错GitHub Invalid authentication data.404 Not Found-Not Found
- 【翻译】Designing Websites for iPhone X
- 前端_网页编程 节流
- Vue2.0 脚手架代码详解
- C++空类中的默认函数
- SQL Server 2017 AlwaysOn AG 自动初始化(十六)
- csv datatable 乱码 导出_C#将DataTable导出到csv文件
- 【CodingNoBorder - 10】无际软工队 - 求职岛:ALPHA 阶段事后分析
- SOLIDWORKS+CAD+UG软件培训 三款电脑学习软件
- 2021-11-06大数据学习日志——数据埋点+网络爬虫——数据提取
- 程序开发中的软实力和硬实力
- 词根词缀|ori/orn/ortho/pact/pan及词源O的故事
- OneTab: 一键合并所有 Chrome 浏览器标签页
- 时尚新享受,告别鼠标手
- C#设计模式(6)——原型模式(Prototype Pattern)
- html标签的默认样式及去除
- 蒲公英内测分发平台使用体验
- git 错误error: failed to push some refs to
- 如何解决NavigationDuplicated: Avoided redundant navigation to current location:问题
- 复姓宇文,全国只有3万人,我们找你好久了,你是那一个吗?