谁能帮我解释一下这段汇编代码

来源:百度知道 编辑:UC知道 时间:2024/09/21 08:47:56
PUSH EBX
PUSH ESI
PUSH EDI
MOV ESI,EAX
MOV EDI,EDX
CMP EAX,EDX
JE L071
TEST ESI,ESI
JE L055
TEST EDI,EDI
JE L058
MOV EAX,DWORD PTR DS:[ESI-4]
MOV EDX,DWORD PTR DS:[EDI-4]
SUB EAX,EDX
JA L016
ADD EDX,EAX
L016:
PUSH EDX
SHR EDX,2
JE L036
L019:
MOV ECX,DWORD PTR DS:[ESI]
MOV EBX,DWORD PTR DS:[EDI]
CMP ECX,EBX
JNZ L061
DEC EDX
JE L034
MOV ECX,DWORD PTR DS:[ESI+4]
MOV EBX,DWORD PTR DS:[EDI+4]
CMP ECX,EBX
JNZ L061
ADD ESI,8
ADD EDI,8
DEC EDX
JNZ L019
JMP L036
L034:
ADD ESI,4
ADD EDI,4
L036:
POP EDX
AND EDX,3
JE L053
MOV ECX,DWORD PTR DS:[ESI]
MOV EBX,DWORD PTR DS:[EDI]
CMP CL,BL
JNZ L071
DEC EDX
JE L053
CMP CH,BH
JNZ L071
DEC EDX
JE L053
AND EBX,0FF0000
AND ECX,0FF0000

改写一下这段汇编代码,就好懂了!这是一段典型的注册名、注册码是否合法判定子程序。
你最好将原程序下载地址补充一下,才好爆破。

PUSH EBX/PUSH ESI/PUSH EDI
MOV ESI,EAX/MOV EDI,EDX
CMP EAX,EDX/JE L071
TEST ESI,ESI/JE L055 ;注册名、注册码为空
TEST EDI,EDI/JE L058 ;则退出子程序,破解时NOP掉
MOV EAX,DWORD PTR DS:[ESI-4]
MOV EDX,DWORD PTR DS:[EDI-4]
SUB EAX,EDX/JA L016
ADD EDX,EAX

L016:
PUSH EDX /SHR EDX,2 /JE L036

L019:
MOV ECX,DWORD PTR DS:[ESI]
MOV EBX,DWORD PTR DS:[EDI]
CMP ECX,EBX /JNZ L061
DEC EDX /JE L034
MOV ECX,DWORD PTR DS:[ESI+4]
MOV EBX,DWORD PTR DS:[EDI+4]
CMP ECX,EBX /JNZ L061
ADD ESI,8 /ADD EDI,8
DEC EDX /JNZ L019
JMP L036

L034:
ADD ESI,4 /ADD EDI,4

L036:
POP EDX
AND EDX,3 /JE L053
MOV ECX,DWORD PTR DS:[ESI]
MOV EBX,DWORD PTR DS:[EDI]
CMP CL,BL /JNZ L071
DEC EDX /JE L053
CMP CH,BH /JNZ L071
DEC EDX /JE L053
AND EBX,0FF0000