吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4668|回复: 7
收起左侧

[分享] 破解初学者基础知识 比较组合

[复制链接]
wtmrymwa 发表于 2010-8-21 17:15
:)eee 经典比较组合,常为注册码出现处
(by programhunter)
1 mov eax [ ] 这里可以是地址,也可以是其它寄存器
mov edx [ ] 同上 通常这两个地址就储存着重要信息
call 00??????
test eax eax
jz(jnz)
2 mov eax [ ] 这里可以是地址,也可以是其它寄存器
mov edx [ ] 同上 通常这两个地址就储存着重要信息
call 00??????
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比较。如此循环.==============================================

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

damgda 发表于 2010-8-21 17:21
[s:20]
abe520 发表于 2010-8-21 19:17
mz0212ka 发表于 2010-8-21 21:22
头像被屏蔽
qq526033781 发表于 2010-8-21 21:50
提示: 作者被禁止或删除 内容自动屏蔽
jie342607776 发表于 2010-8-22 12:38
我看不懂 - -
cby1985 发表于 2010-8-23 01:37
还看不懂。。。。
shs5599 发表于 2010-8-23 16:19
我也看不懂
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-21 10:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表