适合新手的160个crakeme--001
本人新手,发帖记录下逆向学习过程,论坛不能直接贴图片嘛,好麻烦啊,还是我不会用啊,emmmm。160个crakeme系列--001
首先下载文件
查壳,没有加壳,拖入od运行
先观察下软件,输入名称和序列号会弹窗提示结果
下断GetWindowTextA,GetWindowTextW,GetDlgItemTextA,GetDlgItemTextW发现程序没有中断
记得还有个函数可以模拟获取字符串,这点忘了,有大佬知道的提示下新手。
换个思路在MessageBoxA,MessageBoxW下断
程序运行有个提示框,跳过。
输入 123456点击确定程序中断,观察堆栈发现会返回0042FA74,右键在反汇编跟随
F2 0042FA6F 将之前的断点删除重新运行,中断在0042FA6F 我们往上看,看有没有未实现的跳转跳过这个call的
找到一个jge 跳转F2,然后重新运行,断在此处,我们让跳转实现跳过call,之后一直单步
发现0042FB03这里一个关键跳转,我们让跳转不现实 ,发现弹出正确提示框破解成功
成功截图
将第一个跳转改为jmp,第二个跳转nop掉,保存文件,运行文件发现无论输入怎样的name和serial都会提示正确,至此破解结束
有空会逆向算法,如果有错误或者建议,希望各位大佬指点。{:1_893:} Eaysuild.xean 发表于 2020-10-13 10:15
个人认为
应该去花时间通过汇编分析算法,才能提高程序逆向的分析能力
谢谢大佬提出的建议
本人有在学习《c++反汇编与逆向分析技术揭秘》一书,后续会逆向算法,将爆破和逆向算法放在一个帖子中。 160个cm在哪里下载,链接失效了 个人认为
应该去花时间通过汇编分析算法,才能提高程序逆向的分析能力
纯改关键跳爆破的crackme没有太多的意义
学习一下,谢谢楼主啦 謝謝分享{:1_921:} 学习学习, 很不错啊 最近有需求来学习一下,感谢楼主。 谢谢各位鼓励与赞同:lol 萌新踏出第一步不容易,加油!{:1_921:}