软件名称:XX算命
破解声明:刚刚加入,并且本人在此之前没有任何的语言基础,仅仅看过几个小小软件的爆破及W32Dasm和OD的使用方法,照猫画虎的跟随着试验了几次(悲哀呀,仅仅其中一个跟随实验成功!!!
)但在其中似乎摸索到了一点东西,就找了个小软件胡乱的玩了玩。。没想到竟然让我成功注册了!!!!因此,声明本人只是初学,没有任何的商业目的,只是想通过次帖让达人指点我一个系统的学习方法!以及crack中的我个人出现的问题!~让自己的水平有个提升!
破解过程:
在发帖前,我发现貌似我crack的软件,在 PYGtianxj 帖中发现了(虽然没贴出软件名称,但是还是看的出。)PYGtianxj的文章我看起来很有难度,毕竟我只是初学,算法注册机的部分就更是让我迷糊了。
下面我就发出我自己crack的过程吧。往达人指点。
①运行软件,进行软件注册。随便输入确认码:515151注册码:151515 晕了,没有任何的提示信息。郁闷!
②还是查下壳吧 ASPack 2.12 -> Alexey Solodovnikov 我要自己脱这个壳估计得花上一段时间,干脆脱壳机吧!
③脱壳完毕Borland Delphi 6.0 - 7.0 哈哈。壳脱了,用W32Dasm查看下字符串吧,没准会有发现。真的有发现,“注册成功!” 赶紧追过去看看吧。
* Possible StringData Ref from Data Obj ->"注册成功!"
|
:0055BF0E B880C05500 mov eax, 0055C080
向上看看吧,会不会再有什么新的发现。。。。
:0055BD8D E84EC1EEFF call 00447EE0
:0055BD92 83BD64FFFFFF00 cmp dword ptr [ebp+FFFFFF64], 00000000
:0055BD99 741A je 0055BDB5
:0055BD9B 8D9560FFFFFF lea edx, dword ptr [ebp+FFFFFF60]
:0055BDA1 8B83F8020000 mov eax, dword ptr [ebx+000002F8]
:0055BDA7 E834C1EEFF call 00447EE0
:0055BDAC 83BD60FFFFFF00 cmp dword ptr [ebp+FFFFFF60], 00000000
:0055BDB3 750F jne 0055BDC4
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0055BD99(C)
|
* Possible StringData Ref from Data Obj ->"注册信息没有填写齐全"
|
:0055BDB5 B8FCBF5500 mov eax, 0055BFFC
:0055BDBA E8AD4EEEFF call 00440C6C
:0055BDBF E977010000 jmp 0055BF3B
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0055BDB3(C)
|
:0055BDC4 8D955CFFFFFF lea edx, dword ptr [ebp+FFFFFF5C]
:0055BDCA 8B8300030000 mov eax, dword ptr [ebx+00000300]
:0055BDD0 E80BC1EEFF call 00447EE0
:0055BDD5 8B855CFFFFFF mov eax, dword ptr [ebp+FFFFFF5C]
:0055BDDB 50 push eax
:0055BDDC 8D9554FFFFFF lea edx, dword ptr [ebp+FFFFFF54]
:0055BDE2 8B83F8020000 mov eax, dword ptr [ebx+000002F8]
:0055BDE8 E8F3C0EEFF call 00447EE0
:0055BDED 8B8554FFFFFF mov eax, dword ptr [ebp+FFFFFF54]
:0055BDF3 E888D8EAFF call 00409680
:0055BDF8 8BF8 mov edi, eax
:0055BDFA 8D9550FFFFFF lea edx, dword ptr [ebp+FFFFFF50]
:0055BE00 8B83F8020000 mov eax, dword ptr [ebx+000002F8]
:0055BE06 E8D5C0EEFF call 00447EE0
:0055BE0B 8B8550FFFFFF mov eax, dword ptr [ebp+FFFFFF50]
:0055BE11 E86AD8EAFF call 00409680
:0055BE16 0FAFF8 imul edi, eax
:0055BE19 8BC7 mov eax, edi
:0055BE1B 8D9558FFFFFF lea edx, dword ptr [ebp+FFFFFF58]
:0055BE21 E896FDFFFF call 0055BBBC
:0055BE26 8B9558FFFFFF mov edx, dword ptr [ebp+FFFFFF58]
:0055BE2C 58 pop eax
:0055BE2D E84E8FEAFF call 00404D80
:0055BE32 0F85E9000000 jne 0055BF21
:0055BE38 A1807D5700 mov eax, dword ptr [00577D80]
:0055BE3D 8B00 mov eax, dword ptr [eax]
:0055BE3F 8B802C040000 mov eax, dword ptr [eax+0000042C]
* Possible StringData Ref from Data Obj ->"本软件已注册"
|
:0055BE45 BA1CC05500 mov edx, 0055C01C
:0055BE4A E8C1C0EEFF call 00447F10
:0055BE4F 8D954CFFFFFF lea edx, dword ptr [ebp+FFFFFF4C]
:0055BE55 8B83F8020000 mov eax, dword ptr [ebx+000002F8]
:0055BE5B E880C0EEFF call 00447EE0
:0055BE60 8B8D4CFFFFFF mov ecx, dword ptr [ebp+FFFFFF4C]
* Possible StringData Ref from Data Obj ->"ssbxr"
|
:0055BE66 BA34C05500 mov edx, 0055C034
:0055BE6B 8BC6 mov eax, esi
:0055BE6D E82E77F1FF call 004735A0
:0055BE72 8D8548FFFFFF lea eax, dword ptr [ebp+FFFFFF48]
* Possible StringData Ref from Data Obj ->"\C1l.dll"
|
:0055BE78 B944C05500 mov ecx, 0055C044
:0055BE7D 8B55FC mov edx, dword ptr [ebp-04]
:0055BE80 E8038EEAFF call 00404C88
:0055BE85 8B8D48FFFFFF mov ecx, dword ptr [ebp+FFFFFF48]
:0055BE8B B201 mov dl, 01
* Possible StringData Ref from Data Obj ->"?G"
|
:0055BE8D A1B0224700 mov eax, dword ptr [004722B0]
:0055BE92 E8C964F1FF call 00472360
:0055BE97 8BF0 mov esi, eax
:0055BE99 8D9544FFFFFF lea edx, dword ptr [ebp+FFFFFF44]
:0055BE9F 8B8300030000 mov eax, dword ptr [ebx+00000300]
:0055BEA5 E836C0EEFF call 00447EE0
:0055BEAA 8B8544FFFFFF mov eax, dword ptr [ebp+FFFFFF44]
:0055BEB0 50 push eax
* Possible StringData Ref from Data Obj ->"dd"
|
:0055BEB1 B958C05500 mov ecx, 0055C058
* Possible StringData Ref from Data Obj ->"sysetup"
|
:0055BEB6 BA64C05500 mov edx, 0055C064
:0055BEBB 8BC6 mov eax, esi
:0055BEBD 8B38 mov edi, dword ptr [eax]
:0055BEBF FF5704 call [edi+04]
:0055BEC2 8D9540FFFFFF lea edx, dword ptr [ebp+FFFFFF40]
:0055BEC8 8B83F8020000 mov eax, dword ptr [ebx+000002F8]
:0055BECE E80DC0EEFF call 00447EE0
:0055BED3 8B8540FFFFFF mov eax, dword ptr [ebp+FFFFFF40]
:0055BED9 50 push eax
* Possible StringData Ref from Data Obj ->"zc"
|
:0055BEDA B974C05500 mov ecx, 0055C074
* Possible StringData Ref from Data Obj ->"sysetup"
|
:0055BEDF BA64C05500 mov edx, 0055C064
:0055BEE4 8BC6 mov eax, esi
:0055BEE6 8B30 mov esi, dword ptr [eax]
:0055BEE8 FF5604 call [esi+04]
:0055BEEB 8D853CFFFFFF lea eax, dword ptr [ebp+FFFFFF3C]
* Possible StringData Ref from Data Obj ->"\C1l.dll"
|
:0055BEF1 B944C05500 mov ecx, 0055C044
:0055BEF6 8B55FC mov edx, dword ptr [ebp-04]
:0055BEF9 E88A8DEAFF call 00404C88
:0055BEFE 8B853CFFFFFF mov eax, dword ptr [ebp+FFFFFF3C]
:0055BF04 BA02000000 mov edx, 00000002
:0055BF09 E89EDAEAFF call 004099AC
* Possible StringData Ref from Data Obj ->"注册成功!"
|
:0055BF0E B880C05500 mov eax, 0055C080
:0055BF13 E8544DEEFF call 00440C6C
:0055BF18 8BC3 mov eax, ebx
:0055BF1A E8299AF0FF call 00465948
:0055BF1F EB1A jmp 0055BF3B
哈哈,又发现了"注册信息没有填写齐全"的字样。有希望。。。。通过我看过的几个教程猜测上面的这么多应该是注册软件时判断有没有填写注册信息和算法了,我呀菜鸟都不算呢,还是不研究这个了吧。
仔细观察,发现:
:0055BD99 741A je 0055BDB5
这里我就知道 上面做了个比较,如果值相等就做跳转到0055BDB5
继续看,
* Possible StringData Ref from Data Obj ->"注册信息没有填写齐全"
|
:0055BDB5 B8FCBF5500 mov eax, 0055BFFC
哈哈,这里大概是看你有没有填注册信息吧。下面的又是算法,好,干脆在跳转的上一条下断吧。
:0055BD92 83BD64FFFFFF00 cmp dword ptr [ebp+FFFFFF64], 00000000
④OD载入,CTRL+G 输入 0055BD92 确定吧,光标直接跳到了这一行。不行,不能立刻下断,程序进入时不是直接就输入确认码和注册码的。还是把要输入的信息填好再下断,然后验证注册信息吧。这么说就这么做。
点完确定注册后,光标停到了
0055BD92 |. 83BD 64FFFFFF 0>cmp dword ptr ss:[ebp-9C],0
这。
???看看信息窗口有什么。。
Stack ss:[0012F960]=010630B0, (ASCII "151515")
这不是我自己输入的注册码吗?估计下面会有发现。一路F8同时注意观察信息窗口。
0055BDAC |. 83BD 60FFFFFF 0>cmp dword ptr ss:[ebp-A0],0
到这,又发现了我输入的确认码,高兴啊!好象就要成功了!!!接着F8
下面的一段程序里我输入的确认码和注册码频繁的出现,有点高兴了!会不会真的能找到真的注册信息呢???接着F8吧!!
到了,0055BE26 |. 8B95 58FFFFFF mov edx,dword ptr ss:[ebp-A8]
这行,信息窗口的ASCLL码值改变了,这意味着什么呢?是不是通过我的确认码而计算出来的真的注册码呢?
信息窗口的内容:Stack ss:[0012F954]=01063114, (ASCII "338708212864")
edx=01063114, (ASCII "338708212864")
好,记录下来,测试一下!
哈哈,高兴,果然注册码让我追出来了!!
确认码:515151
注册码:338708212864
THE END
虽然,我crack了这个共享软件,可是总感觉有点碰运气的成分在里面!我想上面贴出的我追出注册码的全过程,一定会暴露出我的不足!
达人看了以后希望给我点建议,该如何进行以后的学习!
[课程]Android-CTF解题方法汇总!