前言:
很久没有来看雪了^_^!!,也很久没有写破文了!上网闲逛随便找个简单软件来练习温习一下破解知道,很久都没有学习破解知识了!关于怎么找到下断就不再多提了。。言
归正转吧!!这个软件很好找下断处,没有加壳。暗喜了。。适合我这个菜鸟。。!!好就在00402BF0下断吧
00402BF0 . 6A FF PUSH -1
00402BF2 . 68 E8344200 PUSH QQ聊天~1.004234E8 ; SE 处理程序安装
00402BF7 . 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
00402BFD . 50 PUSH EAX
00402BFE . 64:8925 0000000>MOV DWORD PTR FS:[0],ESP
00402C05 . 83EC 08 SUB ESP,8
00402C08 . 56 PUSH ESI
00402C09 . 8BF1 MOV ESI,ECX
00402C0B . 6A 01 PUSH 1
00402C0D . E8 96720100 CALL QQ聊天~1.00419EA8
00402C12 . A1 5CF64200 MOV EAX,DWORD PTR DS:[42F65C]
00402C17 . 894424 04 MOV DWORD PTR SS:[ESP+4],EAX
00402C1B . 8D8E 1C010000 LEA ECX,DWORD PTR DS:[ESI+11C]
00402C21 . C74424 14 00000>MOV DWORD PTR SS:[ESP+14],0
00402C29 . 51 PUSH ECX
00402C2A . 8D4C24 08 LEA ECX,DWORD PTR SS:[ESP+8]
00402C2E . E8 34870100 CALL QQ聊天~1.0041B367
00402C33 . 51 PUSH ECX
00402C34 . 8D5424 08 LEA EDX,DWORD PTR SS:[ESP+8]
00402C38 . 8BCC MOV ECX,ESP
00402C3A . 896424 0C MOV DWORD PTR SS:[ESP+C],ESP
00402C3E . 52 PUSH EDX
00402C3F . E8 A3830100 CALL QQ聊天~1.0041AFE7
00402C44 . E8 57FEFFFF CALL QQ聊天~1.00402AA0 ; ★★★★★关键CALL!跟进。。。★★★★★
00402C49 . 83C4 04 ADD ESP,4
00402C4C . 85C0 TEST EAX,EAX ; 测试EAX是否相等!
00402C4E . 74 1C JE SHORT QQ聊天~1.00402C6C ; 不相等则注册成功!!
00402C50 . 6A 00 PUSH 0
00402C52 . 68 C4F24200 PUSH QQ聊天~1.0042F2C4 ; ngnsss
00402C57 . 68 E0F24200 PUSH QQ聊天~1.0042F2E0 ; 注册成功
00402C5C . 8BCE MOV ECX,ESI
00402C5E . E8 E96A0100 CALL QQ聊天~1.0041974C
00402C63 . 8BCE MOV ECX,ESI
00402C65 . E8 089A0100 CALL QQ聊天~1.0041C672
00402C6A . EB 44 JMP SHORT QQ聊天~1.00402CB0
00402C6C > 6A 08 PUSH 8
00402C6E . 68 CCF24200 PUSH QQ聊天~1.0042F2CC ; 1163659294813585
00402C73 . 6A 08 PUSH 8
00402C75 . 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
00402C79 . E8 B3890100 CALL QQ聊天~1.0041B631
00402C7E . 50 PUSH EAX
00402C7F . E8 CC800000 CALL QQ聊天~1.0040AD50
00402C84 . 83C4 0C ADD ESP,0C
00402C87 . 85C0 TEST EAX,EAX
00402C89 . 75 12 JNZ SHORT QQ聊天~1.00402C9D
00402C8B . 50 PUSH EAX
00402C8C . 68 C4F24200 PUSH QQ聊天~1.0042F2C4 ; ngnsss
00402C91 . 68 A0F24200 PUSH QQ聊天~1.0042F2A0 ; 这是个盗版的注册号,请注册正式版本
00402C96 . 8BCE MOV ECX,ESI
00402C98 . E8 AF6A0100 CALL QQ聊天~1.0041974C
00402C9D > 6A 00 PUSH 0
00402C9F . 68 C4F24200 PUSH QQ聊天~1.0042F2C4 ; ngnsss
00402CA4 . 68 94F24200 PUSH QQ聊天~1.0042F294 ; 注册号无效
00402CA9 . 8BCE MOV ECX,ESI
00402CAB . E8 9C6A0100 CALL QQ聊天~1.0041974C
00402CB0 > 8D4C24 04 LEA ECX,DWORD PTR SS:[ESP+4]
00402CB4 . C74424 14 FFFFF>MOV DWORD PTR SS:[ESP+14],-1
00402CBC . E8 B1850100 CALL QQ聊天~1.0041B272
00402CC1 . 8B4C24 0C MOV ECX,DWORD PTR SS:[ESP+C]
00402CC5 . 5E POP ESI
00402CC6 . 64:890D 0000000>MOV DWORD PTR FS:[0],ECX
00402CCD . 83C4 14 ADD ESP,14
00402CD0 . C3 RETN
=====================================跟进关键CALL..00402AA0=============================================
00402AA0 /$ 6A FF PUSH -1
00402AA2 |. 68 C8344200 PUSH QQ聊天~1.004234C8 ; SE 处理程序安装
00402AA7 |. 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
00402AAD |. 50 PUSH EAX
00402AAE |. 64:8925 0000000>MOV DWORD PTR FS:[0],ESP
00402AB5 |. 83EC 18 SUB ESP,18
00402AB8 |. 53 PUSH EBX
00402AB9 |. 6A 08 PUSH 8
00402ABB |. 33DB XOR EBX,EBX
00402ABD |. 68 CCF24200 PUSH QQ聊天~1.0042F2CC ; 1163659294813585
00402AC2 |. 6A 08 PUSH 8
00402AC4 |. 8D4C24 38 LEA ECX,DWORD PTR SS:[ESP+38]
00402AC8 |. 895C24 30 MOV DWORD PTR SS:[ESP+30],EBX
00402ACC |. E8 608B0100 CALL QQ聊天~1.0041B631 ; 取假码,并送入EAX!
00402AD1 |. 50 PUSH EAX ; 假码进?!
00402AD2 |. E8 79820000 CALL QQ聊天~1.0040AD50
00402AD7 |. 83C4 0C ADD ESP,0C
00402ADA |. 85C0 TEST EAX,EAX
00402ADC |. 0F84 E3000000 JE QQ聊天~1.00402BC5
00402AE2 |. 8B4C24 2C MOV ECX,DWORD PTR SS:[ESP+2C]
00402AE6 |. 33C0 XOR EAX,EAX
00402AE8 |. 894424 05 MOV DWORD PTR SS:[ESP+5],EAX
00402AEC |. 885C24 04 MOV BYTE PTR SS:[ESP+4],BL
00402AF0 |. 66:894424 09 MOV WORD PTR SS:[ESP+9],AX
00402AF5 |. 884424 0B MOV BYTE PTR SS:[ESP+B],AL
00402AF9 |. 8B41 F8 MOV EAX,DWORD PTR DS:[ECX-8]
00402AFC |. 83F8 10 CMP EAX,10 ; 比较假码是否小于10HEX(16位字符)
00402AFF |. 0F8C C0000000 JL QQ聊天~1.00402BC5 ; 小于则跳走失败!!
00402B05 |. 56 PUSH ESI
00402B06 |. 68 04010000 PUSH 104
00402B0B |. 8D4C24 34 LEA ECX,DWORD PTR SS:[ESP+34]
00402B0F |. E8 1D8B0100 CALL QQ聊天~1.0041B631 ; 将假码转成ASIIC码,保存到00A44FA8
00402B14 |. 8B10 MOV EDX,DWORD PTR DS:[EAX]
00402B16 |. 33F6 XOR ESI,ESI ; ESI清0
00402B18 |. 895424 10 MOV DWORD PTR SS:[ESP+10],EDX ; \
00402B1C |. 8B48 04 MOV ECX,DWORD PTR DS:[EAX+4] ; |
00402B1F |. 894C24 14 MOV DWORD PTR SS:[ESP+14],ECX ; |分段转存到0012EE48
00402B23 |. 8B50 08 MOV EDX,DWORD PTR DS:[EAX+8] ; |
00402B26 |. 895424 18 MOV DWORD PTR SS:[ESP+18],EDX ; |
00402B2A |. 8B40 0C MOV EAX,DWORD PTR DS:[EAX+C] ; /
00402B2D |. 894424 1C MOV DWORD PTR SS:[ESP+1C],EAX
00402B31 |> 8A4C34 10 /MOV CL,BYTE PTR SS:[ESP+ESI+10] ; 依次取出假码送和CL
00402B35 |. 51 |PUSH ECX
00402B36 |. E8 45FFFFFF |CALL QQ聊天~1.00402A80 ; 这个CALL是转换数字和字母
00402B3B |. 83C4 04 |ADD ESP,4
00402B3E |. 884434 10 |MOV BYTE PTR SS:[ESP+ESI+10],AL
00402B42 |. 46 |INC ESI
00402B43 |. 83FE 10 |CMP ESI,10
00402B46 |.^ 7C E9 \JL SHORT QQ聊天~1.00402B31
00402B48 |. 33C0 XOR EAX,EAX ; EAX清0
00402B4A |. 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
00402B4E |. 5E POP ESI
00402B4F |> 8A51 01 /MOV DL,BYTE PTR DS:[ECX+1] ; 依取出偶数的假码字符!送入到DL
00402B52 |. 8A19 |MOV BL,BYTE PTR DS:[ECX] ; 依取出奇数的假码字符!送入到BL
00402B54 |. C0E2 04 |SHL DL,4 ; 左移,乘2^4(十六进制10)(十进制为16)
00402B57 |. 02D3 |ADD DL,BL ; DL=左移4位的DL+BL
00402B59 |. 83C1 02 |ADD ECX,2 ; ECX+2做好准备取下一位偶数假码字符!
00402B5C |. 885404 04 |MOV BYTE PTR SS:[ESP+EAX+4],DL ; 累加后保存到0012EE40(21436587A9CBEDFF)
00402B60 |. 40 |INC EAX ; EAX加1为计数器器
00402B61 |. 83F8 08 |CMP EAX,8 ; 比较EAX是否小于8
00402B64 |.^ 7C E9 \JL SHORT QQ聊天~1.00402B4F
00402B66 |. 8A4424 07 MOV AL,BYTE PTR SS:[ESP+7] ; AL=等于计算后的4位
00402B6A |. 8A5C24 04 MOV BL,BYTE PTR SS:[ESP+4] ; BL=等于计算后的1位
00402B6E |. 8A4C24 0B MOV CL,BYTE PTR SS:[ESP+B] ; CL=等于计算后的8位
00402B72 |. 8A5424 05 MOV DL,BYTE PTR SS:[ESP+5] ; DL==等于计算后的2位
00402B76 |. 32C3 XOR AL,BL
00402B78 |. 8A5C24 06 MOV BL,BYTE PTR SS:[ESP+6] ; BL=等于计算后的3位
00402B7C |. 32CA XOR CL,DL
00402B7E |. 8A5424 09 MOV DL,BYTE PTR SS:[ESP+9] ; DL=等于计算后的6位
00402B82 |. 32D3 XOR DL,BL
00402B84 |. 8A5C24 08 MOV BL,BYTE PTR SS:[ESP+8] ; BL==等于计算后的5位
00402B88 |. 325C24 0A XOR BL,BYTE PTR SS:[ESP+A] ; BL和=等于计算后的7位
00402B8C |. 3C 38 CMP AL,38 ; 比较1 XOR 4是否等于38
00402B8E |. 75 35 JNZ SHORT QQ聊天~1.00402BC5 ; 不满足则跳走失败!!
00402B90 |. 80F9 6E CMP CL,6E ; 比较2 XOR 8是否等于6E
00402B93 |. 75 30 JNZ SHORT QQ聊天~1.00402BC5 ; 不满足则跳走失败!!
00402B95 |. 80FA 4E CMP DL,4E ; 比较6 XOR 3是否等于4E
00402B98 |. 75 2B JNZ SHORT QQ聊天~1.00402BC5 ; 不满足则跳走失败!!
00402B9A |. 80FB 1A CMP BL,1A ; 比较5 XOR 7是否等于1A
00402B9D |. 75 26 JNZ SHORT QQ聊天~1.00402BC5 ; 不满足则跳走失败!!
00402B9F |. 8D4C24 2C LEA ECX,DWORD PTR SS:[ESP+2C]
00402BA3 |. C74424 24 FFFFF>MOV DWORD PTR SS:[ESP+24],-1
00402BAB |. E8 C2860100 CALL QQ聊天~1.0041B272
00402BB0 |. B8 01000000 MOV EAX,1 ; EAX置1(注册成功标志,这个标志也全局变量)爆破记得这里哦!
00402BB5 |. 5B POP EBX
00402BB6 |. 8B4C24 18 MOV ECX,DWORD PTR SS:[ESP+18]
00402BBA |. 64:890D 0000000>MOV DWORD PTR FS:[0],ECX
00402BC1 |. 83C4 24 ADD ESP,24
00402BC4 |. C3 RETN
00402BC5 |> 8D4C24 2C LEA ECX,DWORD PTR SS:[ESP+2C]
00402BC9 |. C74424 24 FFFFF>MOV DWORD PTR SS:[ESP+24],-1
00402BD1 |. E8 9C860100 CALL QQ聊天~1.0041B272
00402BD6 |. 8B4C24 1C MOV ECX,DWORD PTR SS:[ESP+1C]
00402BDA |. 33C0 XOR EAX,EAX
00402BDC |. 5B POP EBX
00402BDD |. 64:890D 0000000>MOV DWORD PTR FS:[0],ECX
00402BE4 |. 83C4 24 ADD ESP,24
00402BE7 \. C3 RETN
分析总结:
好了这个软件的算很简单,说得简单点这个注册方式就一定要16位字符(0~~F)了,
打比方我输入的假码:
第一步:(输入的假码)
01 23 45 67 89 AB CD EF
第二步:(假码字符排列)
10 32 54 76 98 BA DC FE
我们来分一下假码排列吧!把假码分为8组!
10 32 54 76 98 BA DC FE
--------------
1 2 3 4 5 6 7 8
第三步:注册码算法就是做一个XOR运算了!!!^_^!!
1(10) XOR 4(32) = 38
2(54) XOR 8(76) = 6E
6(98) XOR 3(BA) = 4E
5(DC) XOR 7(FE) = 1A
满足以上等于号的条件就可以注册成功了。。!!直下来就是为真注册码排列注册方式!
第四步:这个是一个真注册码1274749121908092
21 47 47 19 12 09 08 29
----------------------------------------------
1 2 3 4 5 6 7 8
然后排列为1274749121908092这个就是真注册码了!!
后话:
这个软件算法超简单了合适菜鸟们学习了。。感觉谢你看完这篇破文希望能给刚入门菜哥们能带来一点点的启发!时间比较伧促(难免错漏)写得不好请DX位不要拍砖哦!(我不坐砖机哦!)^_^!!
22:22 2006-6-6
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)