能力值:
( LV6,RANK:90 )
|
-
-
2 楼
静态反汇编就行了,然后查找出错信息。
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00463105(U)
|
:00463122 8D55F0 lea edx, dword ptr [ebp-10]
:00463125 8B83FC020000 mov eax, dword ptr [ebx+000002FC]
:0046312B E88403FDFF call 004334B4
:00463130 8B45F0 mov eax, dword ptr [ebp-10]
:00463133 8D55F4 lea edx, dword ptr [ebp-0C]
:00463136 E801FFFFFF call 0046303C 〈--------------算法CALL,进去看看
:0046313B 8B45F4 mov eax, dword ptr [ebp-0C]
* Possible StringData Ref from Code Obj ->"124439" <-----------------和它比较,相等就注册成功啦
|
:0046313E BAF8314600 mov edx, 004631F8
:00463143 E8A411FAFF call 004042EC <------------------比较CALL
:00463148 751C jne 00463166 <------------------NOP
:0046314A 8B8308030000 mov eax, dword ptr [ebx+00000308]
:00463150 B201 mov dl, 01
:00463152 E87D02FDFF call 004333D4
:00463157 8B8310030000 mov eax, dword ptr [ebx+00000310]
:0046315D B201 mov dl, 01
:0046315F E87002FDFF call 004333D4
:00463164 EB24 jmp 0046318A
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00463148(C)
|
* Possible StringData Ref from Code Obj ->"PassWord invalid!" <--------出错信息
|
:00463166 B808324600 mov eax, 00463208
:0046316B E8644CFCFF call 00427DD4
:00463170 8B8308030000 mov eax, dword ptr [ebx+00000308]
:00463176 33D2 xor edx, edx
:00463178 E85702FDFF call 004333D4
:0046317D 8B8310030000 mov eax, dword ptr [ebx+00000310]
:00463183 33D2 xor edx, edx
:00463185 E84A02FDFF call 004333D4
**********************算法CALL***************************
* Referenced by a CALL at Addresses:
|:00463136 , :004632BB
|
:0046303C 55 push ebp
:0046303D 8BEC mov ebp, esp
:0046303F 51 push ecx
:00463040 53 push ebx
:00463041 8BDA mov ebx, edx
:00463043 8945FC mov dword ptr [ebp-04], eax
:00463046 8B45FC mov eax, dword ptr [ebp-04]
:00463049 E84213FAFF call 00404390
:0046304E 33C0 xor eax, eax
:00463050 55 push ebp
:00463051 6886304600 push 00463086
:00463056 64FF30 push dword ptr fs:[eax]
:00463059 648920 mov dword ptr fs:[eax], esp
:0046305C 8B45FC mov eax, dword ptr [ebp-04]
:0046305F E8F84EFAFF call 00407F5C <-------把输入的10进制数值转换成16进制数,记为A
:00463064 3557040000 xor eax, 00000457 <-------A 然后和457H 异或,得 B
:00463069 8BD3 mov edx, ebx
:0046306B E8B04DFAFF call 00407E20 <-------把B 再转换为10进制数
:00463070 33C0 xor eax, eax
:00463072 5A pop edx
总结: 把你输入的数值转换为16进制数,记为A;
和457H进行异或,得 B;
把B 再转换为10进制数,得 C;
C 和10进制数124439 比较,是否相等。
|
能力值:
( LV12,RANK:1130 )
|
-
-
3 楼
自己写的CarckMe调试应该很得心应手得吧?
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
反汇编,修改跳转
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
 那么拿过一个程序来,我怎么能知道应该用静态反汇编还是动态反汇编呢?
|
能力值:
( LV12,RANK:1130 )
|
-
-
6 楼
简单的静态(汇编功底要强哦),复杂的需要动态调试,其实没什么区分标准的啦。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
大家帮帮我,谢谢了
|