老文章档案 · 2003 年

DDXia主页crackme中的aLoNg3x的破解过程(难度:简单)

破解教程 · 破解入门 · 2003-09-08 · 作者:cqzrd 人气: · 出处:赢政天下整理收藏)

这次破的软件是DDXia主页(http://go.163.com/~ddxia/)中crackme中的aLoNg3x

(解压后名字为crackme100.exe ),有兴趣的同志可以去下一个来试试。

功能:无,专供练手。级别:1。

工具:TRW2000121。

步骤:

1、打开后在name框中输入大名,字母数必须>5个,原因在后面会讲到。

code框随便输入几个数即可。

2、bpx hmemcpy设断。F5 退出。

3、再随便输入一个数,TRW弹出。

4、pmodule返回程式空间。不断按F10,直到:

00442CE7 8D55F8 lea edx, dword ptr [ebp-08]

00442CEA 8B83E0020000 mov eax, dword ptr [ebx+000002E0]

00442CF0 E8CB05FEFF call 004232C0 --->获取name及其字数

00442CF5 8B45F8 mov eax, dword ptr [ebp-08]

00442CF8 50 push eax

00442CF9 8D55F0 lea edx, dword ptr [ebp-10]

00442CFC 8B83DC020000 mov eax, dword ptr [ebx+000002DC]

00442D02 E8B905FEFF call 004232C0 --->获取code

00442D07 8B45F0 mov eax, dword ptr [ebp-10]

00442D0A 5A pop edx

00442D0B E82CFDFFFF call 00442A3C --->***在此换F8切入。***

00442D10 84C0 test al, al --->若al=0则去死。

00442D12 740F je 00442D23

此处是call 00442A3C的内容:

015F:00442A3C PUSH EBP

015F:00442A3D MOV EBP,ESP

015F:00442A3F ADD ESP,BYTE -08

015F:00442A42 PUSH EBX

015F:00442A43 PUSH ESI

015F:00442A44 MOV [EBP-08],EDX

015F:00442A47 MOV [EBP-04],EAX

015F:00442A4A MOV EAX,[EBP-04]

015F:00442A4D CALL 00403BE8

015F:00442A52 MOV EAX,[EBP-08]

015F:00442A55 CALL 00403BE8

015F:00442A5A XOR EAX,EAX

015F:00442A5C PUSH EBP

015F:00442A5D PUSH DWORD 00442AE5

015F:00442A62 PUSH DWORD [FS:EAX]

015F:00442A65 MOV [FS:EAX],ESP

015F:00442A68 MOV EAX,[EBP-04]

015F:00442A6B CALL 00403A34

015F:00442A70 CMP EAX,BYTE +05 --->比较name长度是否>5。

015F:00442A73 JNG 00442AC8 --->若不大于则去死。

015F:00442A75 MOV EAX,[EBP-04]

015F:00442A78 CALL 00403A34

015F:00442A7D MOV EBX,EAX

015F:00442A7F MOV EAX,[EBP-04]

015F:00442A82 CALL 00403A34

015F:00442A87 MOV EDX,EAX

015F:00442A89 DEC EDX

015F:00442A8A TEST EDX,EDX

015F:00442A8C JNG 00442AAE

015F:00442A8E MOV EAX,01 --->EAX置1

015F:00442A93 MOV ECX,[EBP-04]

015F:00442A96 MOVZX ECX,BYTE [ECX+EAX-01] --->取name的第一个字母。

015F:00442A9B MOV ESI,[EBP-04]

015F:00442A9E MOVZX ESI,BYTE [ESI+EAX] --->取name的第二个字母。

015F:00442AA2 IMUL ECX,ESI —

015F:00442AA5 IMUL ECX,EAX |

015F:00442AA8 ADD EBX,ECX | 该段通过name换算出一个数num

015F:00442AAA INC EAX |

015F:00442AAB DEC EDX |

015F:00442AAC JNZ 00442A93 —

015F:00442AAE MOV EAX,[EBP-08]

015F:00442AB1 CALL 00407670 --->获取code并转为Hex放入EAX。

015F:00442AB6 SUB EBX,EAX

015F:00442AB8 CMP EBX,029A --->比较num与code之差是否为029A(666)

015F:00442ABE JNZ 00442AC4 --->若是,则OK按钮可用,否则去死。

015F:00442AC0 MOV BL,01

015F:00442AC2 JMP SHORT 00442ACA

015F:00442AC4 XOR EBX,EBX

015F:00442AC6 JMP SHORT 00442ACA

015F:00442AC8 XOR EBX,EBX

015F:00442ACA XOR EAX,EAX

015F:00442ACC POP EDX

015F:00442ACD POP ECX

015F:00442ACE POP ECX

015F:00442ACF MOV [FS:EAX],EDX

015F:00442AD2 PUSH DWORD 00442AEC

015F:00442AD7 LEA EAX,[EBP-08]

015F:00442ADA MOV EDX,02

015F:00442ADF CALL 004037DC

015F:00442AE4 RET

至此,破解过程完成。有趣的是在该段call内,有一个call(具体哪个我忘了)是判断输

入的code的第一个字母是数字异或是-、+、$、x、X、0等,若是则会有另一番判断过程。有兴

趣的同志可以自己进去看看。下面是我用TC2写的注册机:

main()

{char a[10];

int i,j,c;unsigned long k,b;

aa: printf("Please input your name:");

gets(a);

i=strlen(a); k=i;

if (i<6||i>10)

{printf("Length of your name must be in 6 and 10:\n");

goto aa;}

for (j=0;j<i-1;j++)

{ b=a[j];

c=a[j+1];

b=b*c*(j+1);

k=k+b; }

printf("Your code is: %ld\n",k-666);}

===============<完>================= (出处:赢政天下整理收藏)

相关文章:

·5StarZip 2001 破解--初学者破解入门

·DFCG破解入门第一课

·DFCG破解入门第二课

·DFCG破解入门第三课

·DFCG破解入门第四课

·DFCG破解入门第五课

·DFCG破解入门第六课

·DFCG破解入门第七课

·DFCG破解入门第八课

·DFCG破解入门第九课

相关软件:

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史