KaQqi 发表于 2016-10-29 08:12

160cm之006 逆向分析 by cqr2287

感觉自己好像被耍了,没有找到真正的注册码,猜想是cm作者用了不等式当做算法,使得不等式永远不相等。
先看软件。

再看看帮助。
00442F4C   .B8 802F4400   mov eax,aLoNg3x_.00442F80                ;ASCII "The purpose of this CrackMe v. 1.00 by aLoNg3x is to MAKE INVISIBLE the buttons "OK" and "Cancella" "
00442F51   .E8 9AF6FFFF   call aLoNg3x_.004425F0
00442F56   .B8 34304400   mov eax,aLoNg3x_.00443034                ;Nota: if the buttons does NOT become invisible, then you have NOT cracked this Crackme :)
00442F5B   .E8 90F6FFFF   call aLoNg3x_.004425F0
00442F60   .B8 98304400   mov eax,aLoNg3x_.00443098                ;If you need some helps e-mail me or if you solve this protection please write me your solution. Many thanks
00442F65   .E8 86F6FFFF   call aLoNg3x_.004425F0
00442F6A   .B8 0C314400   mov eax,aLoNg3x_.0044310C                ;CrackMe v. 1.00 written by "aLoNg3x" E-MAIL: albatro@freemail.it ; member of "Ringzer0" URL: http://ringzer0.cjb.net

要ok按钮可用并且第二个按钮隐藏才算成功。

static/image/hrline/2.gif
爆破开始
还是Delphi程序,上dede。
直接到过程看看按钮。
先看ok按钮。

好的,去442d64看看。
下断点,运行。
单步跟踪。
00442CD6|. /75 0F         jnz short aLoNg3x_.00442CE7
00442CD8|. |B2 01         mov dl,0x1
00442CDA|. |8B83 CC020000 mov eax,dword ptr ds:
00442CE0|. |8B08          mov ecx,dword ptr ds:               ;aLoNg3x_.0041CD78
00442CE2|. |FF51 60       call dword ptr ds:
00442CE5|. |EB 49         jmp short aLoNg3x_.00442D30
00442CE7|> \8D55 F8       lea edx,

这是一个可疑的判断。而jnz跳了。并且跳过了call和jmp,是Delphi的判断。所以,Nop、

哈哈。
下一步让那个按钮隐藏。
Delphi找到那个按钮的地址
442d64
下段,运行,点按钮。
断下,f8跟踪。
00442D84|. /75 12         jnz short aLoNg3x_.00442D98
00442D86|. |BA 002E4400   mov edx,aLoNg3x_.00442E00                ;0
00442D8B|. |8B83 E0020000 mov eax,dword ptr ds:
00442D91|. |E8 5A05FEFF   call aLoNg3x_.004232F0
00442D96|. |EB 3F         jmp short aLoNg3x_.00442DD7
00442D98|> \8D55 FC       lea edx,

又是个可疑判断。nop掉jnz。
啊哈,搞定了。

static/image/hrline/2.gif
下方是我的一些疑问。
上方已经找到了爆破位置,我们在断点上面跟踪。
理论上可以跟到注册码或者找到算法call,但实际上判断两个按钮的两个算法都没找到。
00442C85|.33C0          xor eax,eax

此时此刻eax被清零。这意味着,关键算法就在下面。
00442C9C|.E8 1F06FEFF   call aLoNg3x_.004232C0

这个call将edx清零。理论上注册码即将出现。
0012E8EC00 00 00 00                                    ....

此时此刻,只给了edx的指针。并且,跟踪后都是00
所以,感觉被耍了。

static/image/hrline/2.gif
通过这几个cm,我们知道,dede好神呀
谢谢大家观看


KaQqi 发表于 2016-10-29 08:24

这个周末将出4集系列教程,出完第5季
47:变量、常量、指针、寄存器、数组
48:Chinazip算法分析(上)寻找并分析关键call
49:Chinazip算法分析(中)分析算法call并总结算法
50:Chinazip算法分析(下)编写算法注册机

年迈的老半藏 发表于 2016-10-29 09:06

这个板凳谁要啊

Ps出来的小赵 发表于 2016-10-29 09:24

那么久了都没人回复,我就回复一下吧{:1_924:}

LeiSir 发表于 2016-10-29 15:13

支持楼主,有机会要好好学学。

很快再相见123 发表于 2016-10-29 16:56

感谢分享    出教程辛苦了
页: [1]
查看完整版本: 160cm之006 逆向分析 by cqr2287