对象::蜗牛数学一年级.exe
下载

http://xz.onlinedown.net/down/wn1.rar
工具:ollydbg1.08b
w32dasm v10.0
这个程式比较的麻烦,因为,算法在不同的两个地方,
算法分析过程
首先脱壳
用w32Dasm反一下,
找到字符串“注册成功”
作如下分析
==================================================================================
:004FCDC8 8BD8 mov ebx, eax
:004FCDCA 33C0 xor eax, eax 我在这里下断
:004FCDCC 55 push ebp
省掉M行代码
:004FCE67 8B15C48B5000 mov edx, dword ptr [00508BC4]
:004FCE6D 8B12 mov edx, dword ptr [edx]
:004FCE6F 8B9254040000 mov edx, dword ptr [edx 00000454] 一直往上看
:004FCE75 E81A7FF0FF call 00404D94 关键call
:004FCE7A 757C jne 004FCEF8 关键跳转
:004FCE7C 6A00 push 00000000
:004FCE7E 668B0D2CCF4F00 mov cx, word ptr [004FCF2C]
:004FCE85 B202 mov dl, 02
* Possible StringData Ref from Code Obj ->" 注册成功! 感谢您的使用,有问题
请E-mai"
->"l给我或通过聊天工具联系。"
|
:004FCE87 B838CF4F00 mov eax, 004FCF38
:004FCE8C E89396F3FF call 00436524
==================================================================================
好了,运行OD
下断,注册拦住了,分析如下
==================================================================================
004FCDCA |. 33C0 XOR EAX,EAX
004FCDCC |. 55 PUSH EBP
004FCDCD |. 68 1BCF4F00 PUSH unpacked.004FCF1B
004FCDD2 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004FCDD5 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004FCDD8 |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
004FCDDB |. 8B83 680300>MOV EAX,DWORD PTR DS:[EBX 368]
004FCDE1 |. E8 EA9BF6FF CALL unpacked.004669D0 ; 取第一格注册码
004FCDE6 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] ;
13BD0F0是注册码第一部份,存入
004FCDE9 |. A1 C48B5000 MOV EAX,DWORD PTR DS:[508BC4]
004FCDEE |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004FCDF0 |. 05 48040000 ADD EAX,448 ; eax是上一次输入的注册码,无聊
004FCDF5 |. E8 D27BF0FF CALL unpacked.004049CC
004FCDFA |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
004FCDFD |. 8B83 6C0300>MOV EAX,DWORD PTR DS:[EBX 36C]
004FCE03 |. E8 C89BF6FF CALL unpacked.004669D0 ; 取第二格注册码
004FCE08 |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8] ;
13A8860是注册码第二部分,再存入
004FCE0B |. A1 C48B5000 MOV EAX,DWORD PTR DS:[508BC4]
004FCE10 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004FCE12 |. 05 4C040000 ADD EAX,44C ; eax是上一次输入的注册码,无聊
004FCE17 |. E8 B07BF0FF CALL unpacked.004049CC
004FCE1C |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
004FCE1F |. 50 PUSH EAX
004FCE20 |. A1 C48B5000 MOV EAX,DWORD PTR DS:[508BC4]
004FCE25 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004FCE27 |. 8B88 4C0400>MOV ECX,DWORD PTR DS:[EAX 44C] ; ecx取第二格的假注册码
004FCE2D |. A1 C48B5000 MOV EAX,DWORD PTR DS:[508BC4] ; 作者神经病
004FCE32 |. 8B00 MOV EAX,DWORD PTR DS:[EAX] ; 作者神经病
004FCE34 |. 8B90 480400>MOV EDX,DWORD PTR DS:[EAX 448] ; edx取第一格的假注册码
004FCE3A |. A1 C48B5000 MOV EAX,DWORD PTR DS:[508BC4] ; 作者神经病
004FCE3F |. 8B00 MOV EAX,DWORD PTR DS:[EAX] ; 作者神经病
004FCE41 |. E8 DE1F0000 CALL unpacked.004FEE24 ; 算法call,把假注册码进行计算。一定要
跟进
004FCE46 |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] ; 返回假注册码算好后的数2210230840
004FCE49 |. A1 C48B5000 MOV EAX,DWORD PTR DS:[508BC4]
004FCE4E |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004FCE50 |. 05 54040000 ADD EAX,454
004FCE55 |. E8 727BF0FF CALL unpacked.004049CC
004FCE5A |. A1 C48B5000 MOV EAX,DWORD PTR DS:[508BC4]
004FCE5F |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
004FCE61 |. 8B80 500400>MOV EAX,DWORD PTR DS:[EAX 450] ; 取入机器码运算后的值
004FCE67 |. 8B15 C48B50>MOV EDX,DWORD PTR DS:[508BC4] ; 这时d:eax,把这个机器码运算后的值的
内存地址记下来,地址为13BB49C 这个数值很重要,整个破解就靠这个地址了。
004FCE6D |. 8B12 MOV EDX,DWORD PTR DS:[EDX]
004FCE6F |. 8B92 540400>MOV EDX,DWORD PTR DS:[EDX 454] ; 取入运算后的假注册码
004FCE75 |. E8 1A7FF0FF CALL unpacked.00404D94 ; 这里就是比较的call了,哈哈。
004FCE7A |. 75 7C JNZ SHORT unpacked.004FCEF8 ; 最后决定性跳转
004FCE7C |. 6A 00 PUSH 0 ; /Arg1 = 00000000
004FCE7E |. 66:8B0D 2CC>MOV CX,WORD PTR DS:[4FCF2C] ; |
004FCE85 |. B2 02 MOV DL,2 ; |
004FCE87 |. B8 38CF4F00 MOV EAX,unpacked.004FCF38 ; |
004FCE8C |. E8 9396F3FF CALL unpacked.00436524 ; /unpacked.00436524
004FCE91 |. A1 C48B5000 MOV EAX,DWORD PTR DS:[508BC4]
==================================================================================
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




