这次破的软件是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{ b=a[j];
c=a[j+1];
b=b*c*(j+1);
k=k+b; }
printf("Your code is: %ld\n",k-666);}
===============<完>=================
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 去除winrar注册框方法
最新文章
比特币病毒怎么破解 比去除winrar注册框方法
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据
人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程
查看所有0条评论>>