heilongwang 发表于 2020-10-12 23:11

适合新手的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:}

heilongwang 发表于 2020-10-13 11:28

Eaysuild.xean 发表于 2020-10-13 10:15
个人认为

应该去花时间通过汇编分析算法,才能提高程序逆向的分析能力


谢谢大佬提出的建议

   本人有在学习《c++反汇编与逆向分析技术揭秘》一书,后续会逆向算法,将爆破和逆向算法放在一个帖子中。

Sinus 发表于 2021-6-21 13:06

160个cm在哪里下载,链接失效了

Eaysuild.xean 发表于 2020-10-13 10:15

个人认为

应该去花时间通过汇编分析算法,才能提高程序逆向的分析能力

纯改关键跳爆破的crackme没有太多的意义

chenqin19940109 发表于 2020-10-13 11:55

学习一下,谢谢楼主啦

rbj520 发表于 2020-10-13 15:44

謝謝分享{:1_921:}

文轩墨客 发表于 2020-10-13 15:59

学习学习,

zouling 发表于 2020-10-13 16:48

很不错啊

Cml778 发表于 2020-10-13 18:48

最近有需求来学习一下,感谢楼主。

heilongwang 发表于 2020-10-13 19:33

谢谢各位鼓励与赞同:lol

绝无神 发表于 2020-10-13 20:10

萌新踏出第一步不容易,加油!{:1_921:}
页: [1] 2 3 4
查看完整版本: 适合新手的160个crakeme--001