破解菜鳥必讀

經典比較組合,常爲註冊碼出現處ide

(by programhunter) spa


1 mov eax [ ] 這裏能夠是地址,也能夠是其它寄存器 it

mov edx [ ] 同上 一般這兩個地址就儲存着重要信息 class


call 00?????? test


test eax eax 循環


jz(jnz) 程序


2 mov eax [ ] 這裏能夠是地址,也能夠是其它寄存器 call


mov edx [ ] 同上 一般這兩個地址就儲存着重要信息 word


call 00?????? di


jne(je)


3 mov eax [ ]


mov edx [ ]


cmp eax,edx


jnz(jz)


或者 begin mov al [ ]


mov cl [ ]


cmp al,cl


jnz(jz)


mov al [ +1]


mov cl [ +1]


cmp al,cl


jnz(jz)


cmp eax ecx (eax爲計數器)


jnl begin


mov al 01


4 lea edi [ ]


lea esi [ ]


repz cmpsd


jz(jnz)


5 mov eax [ ] 這裏能夠是地址,也能夠是其它寄存器


mov edx [ ] 同上 一般這兩個地址就儲存着重要信息


call 00??????


setz (setnz) al (bl,cl…)


6 mov eax [ ] 這裏能夠是地址,也能夠是其它寄存器


mov edx [ ] 同上 一般這兩個地址就儲存着重要信息


call 00??????


test eax eax


setz (setnz) bl,cl…


7 call 00?????? ***


push eax (ebx,ecx…)


……


……


call 00??????


pop eax (ebx,ecx…)


test eax eax


jz(jnz)


這個形式比較特別,它的關鍵比較地方不在第二call中,而在第一call中


(2)註冊碼按字節依次給出


:0042A159 0FBE03 movsx eax, byte ptr [ebx]


:0042A15C 50 push eax ^^^^^


:0042A15D E8228C0400 call 00472D84


:0042A162 59 pop ecx


:0042A163 83F84A cmp eax, 0000004A ---->J


:0042A166 7559 jne 0042A1C1


:0042A168 0FBE5301 movsx edx, byte ptr [ebx+01]


:0042A16C 52 push edx ^^^^^^^


:0042A16D E8128C0400 call 00472D84


:0042A172 59 pop ecx


:0042A173 83F853 cmp eax, 00000053


^^^^^^^^^^^^^^^^^----> S


:0042A176 7549 jne 0042A1C1


:0042A178 0FBE4B02 movsx ecx, byte ptr [ebx+02]


:0042A17C 83F924 cmp ecx, 00000024 ^^^^^^^


^^^^^^^^^^^^^^^^^----> $


:0042A17F 7540 jne 0042A1C1


:0042A181 0FBE4303 movsx eax, byte ptr [ebx+03]


:0042A185 83F832 cmp eax, 00000032 ^^^^^^^^


^^^^^^^^^^^^^^^^^----> 2


:0042A188 7537 jne 0042A1C1


:0042A18A 0FBE5304 movsx edx, byte ptr [ebx+04]


:0042A18E 83FA38 cmp edx, 00000038 ^^^^^^^^


^^^^^^^^^^^^^^^^^----> 8


:0042A191 752E jne 0042A1C1


:0042A193 0FBE4B05 movsx ecx, byte ptr [ebx+05]


:0042A197 83F939 cmp ecx, 00000039 ^^^^^^^


^^^^^^^^^^^^^^^^^----> 9


:0042A19A 7525 jne 0042A1C1


:0042A19C 0FBE4306 movsx eax, byte ptr [ebx+06]


:0042A1A0 83F832 cmp eax, 00000032 ^^^^^^^^


^^^^^^^^^^^^^^^^^----> 2


:0042A1A3 751C jne 0042A1C1


:0042A1A5 0FBE5307 movsx edx, byte ptr [ebx+07]


:0042A1A9 83FA31 cmp edx, 00000031 ^^^^^^^^


^^^^^^^^^^^^^^^^^


----->1


(3)比較位數


cmp dword ptr[ebp-04],0000000A


jne/jge/jle/je 00xxxx



mov eax, dword ptr [ebp-04]


call 00xxxx


cmp eax, 0000000A <----比較註冊碼是否爲10位


jne 00xxxxx <----不是,錯


(4)VB程序經典比較


PUSH XXX //假註冊碼


PUSH XXX //真註冊碼


CALL [MSVBVM60!__vbaStrCmp]


TEST EAX,EAX


JNZ 00XXXXX


(5)SmartCheck中,註冊碼常出現處


__vbasrtcmp(String:"zzzzz",String:"yyyyy")returns  __vbaStrVarVal(VARIATN:String"a") returns  __vbaVarTstEq(VARIANT:****, VARIANT:****) returns (6)依次取兩位比較 :004044D8 8A10 mov dl, byte ptr [eax] :004044DA 8ACA mov cl, dl :004044DC 3A16 cmp dl, byte ptr [esi] :004044DE 751C jne 004044FC :004044E0 84C9 test cl, cl :004044E2 7414 je 004044F8 :004044E4 8A5001 mov dl, byte ptr [eax+01] :004044E7 8ACA mov cl, dl :004044E9 3A5601 cmp dl, byte ptr [esi+01] :004044EC 750E jne 004044FC :004044EE 83C002 add eax, 00000002 *** :004044F1 83C602 add esi, 00000002 *** :004044F4 84C9 test cl, cl :004044F6 75E0 jne 004044D8 每次程序依次取兩位,放入byte ptr [esi],byte ptr [esi+1],與eax, eax+1比較。如此循環.==============================================

相關文章
相關標籤/搜索