Posted on 2009-09-20 23:53
S.l.e!ep.¢% 阅读(347)
评论(0) 编辑 收藏 引用 所属分类:
Crack
在所有的 GetWindowText 设置断点
Ctrl + F2 重新开始
00401323 |. E8 4C010000 call <jmp.&USER32.GetWindowTextA> ; \GetWindowTextA
00401328 |. E8 A5000000 call 004013D2 <--- 执行完这个之后,结果就放到 esi,
0040132D |. 3BC6 cmp eax, esi <--- 然后跟 eax 进行比较
0040132F |. 75 42 jnz short 00401373
00401331 |. EB 2C jmp short 0040135F
相关的汇编指令:
CMP
功能: 比较OP1与OP2的值
语法: CMP r/m,r/m/data
标志位: C,P,A,Z,O
Z == 0 ,则认为这两个数相等
JNZ
JNZ 就是zf标志不为1转移
汇编语言标志寄存器标志位说明
标志
|
名称
|
值为1的标志
|
值为0的标志
|
说明
|
OF
|
Overflow Flag
|
OV(OVERFLOW)
|
NV(NOT OVERFLOW)
|
ALU是否溢出标志
|
SF
|
Sign Flag
|
NG(NEGTIVE)
|
PL(PLUS)
|
是否结果为负标志 (该标志的值总是ALU运算后最高位的结果保持一致)
|
ZF
|
Zero Flag
|
ZR(ZERO)
|
NZ(NOT ZERO)
|
是否结果为0标志
|
PF
|
Parity Flag
|
PE(PARITY EVEN)
|
PO(PARITY ODD)
|
ALU结果中1的个数的奇偶位 (确切地说是ALU的低八位中1的个数)
|
CF
|
Carry Flag
|
CY(CARRIED)
|
NC(NOT CARRIED)
|
是否借位或进位标志
|
DF
|
Direction Flag
|
DN(DOWN)
|
UP(UP)
|
方向标志,若值为1则数据串指令从高地址向低地址方向步进
|
TF
|
Trap Flag
|
|
|
值为1的时候每执行一次指令便产生一条内中断指令
|
IF
|
Interupt Flag
|
|
|
值为1的时候CPU可响应可屏蔽中断指令
|
AF
|
Auxiliary Carry Flag
|
|
|
加、减算术指令执行后,最低4位D 3
~
D 0位有进位或借位,AF=1;无进位或借位,AF=0。该标志用于系统进行BCD码的算术运算结果的调整
|
|
|
00401323 |. E8 4C010000 call <jmp.&USER32.GetWindowTextA> ; \GetWindowTextA
00401328 |. E8 A5000000 call 004013D2 <--- 执行完这个之后,结果就放到 esi,
0040132D |. 3BC6 cmp eax, esi <--- 然后跟 eax 进行比较
0040132F |. 75 42 jnz short 00401373 <--- 肯定有地方修改了A这个标志位
00401331 |. EB 2C jmp short 0040135F
Ctrl + F2 再来一次,00401328 |. E8 A5000000 call 004013D2 F7跟进去
004013D2 /$ 56 push esi <--- 因为这个 function 要修改到 esi ,所以先保存 esi 的值,最后一定会 pop esi
004013D3 |. 33C0 xor eax, eax 清 eax 的值
004013D5 |. 8D35 C4334000 lea esi, dword ptr [4033C4] LEA 装入有效地址. 例: LEA DX,string ;把偏移地址存到DX.
004013DB |. 33C9 xor ecx, ecx 清 ecx
004013DD |. 33D2 xor edx, edx 清 edx
004013DF |. 8A06 mov al, byte ptr [esi]
004013E1 |. 46 inc esi
004013E2 |. 3C 2D cmp al, 2D
004013E4 |. 75 08 jnz short 004013EE
004013E6 |. BA FFFFFFFF mov edx, -1
004013EB |. 8A06 mov al, byte ptr [esi]
004013ED |. 46 inc esi
004013EE |> EB 0B jmp short 004013FB
004013F0 |> 2C 30 /sub al, 30