能力值:
( LV6,RANK:90 )
|
-
-
2 楼
enable write breakpoint.
catch code up she.
|
能力值:
( LV4,RANK:50 )
在线值:

|
-
-
3 楼
1.写内存write断点,在代码的内存区域里面?
2.不明白第二句
|
能力值:
( LV4,RANK:50 )
在线值:

|
-
-
4 楼
解决方法如下:
1.找到程序会恢复代码的其中一个地址
2.在这个代码地址里面下硬件写断点
3.在程序里面执行若干操作后(F2断点不能去掉)直到引发硬件写断点
段在:004431A1,往上往下翻翻代码,结果如下:
00443160 |. 8D3C10 |LEA EDI,DWORD PTR DS:[EAX+EDX]
00443163 |. 8D44E9 04 |LEA EAX,DWORD PTR DS:[ECX+EBP*8+4]
00443167 |. 33D2 |XOR EDX,EDX
00443169 |. 897C24 14 |MOV DWORD PTR SS:[ESP+14],EDI
0044316D |. 8B08 |MOV ECX,DWORD PTR DS:[EAX]
0044316F |. F3:A6 |REPE CMPS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI] ; 判断代码是否改变
00443171 EB 4E JMP SHORT elementc.004431C1 ; 直接JMP掉
00443173 |. 8B10 |MOV EDX,DWORD PTR DS:[EAX]
00443175 |. 8D4C24 10 |LEA ECX,DWORD PTR SS:[ESP+10]
00443179 |. 51 |PUSH ECX ; /pOldProtect
0044317A |. 6A 40 |PUSH 40 ; |NewProtect = PAGE_EXECUTE_READWRITE
0044317C |. 52 |PUSH EDX ; |Size
0044317D |. 53 |PUSH EBX ; |Address
0044317E |. FF15 C4E18400 |CALL DWORD PTR DS:[<&KERNEL32.VirtualProtect>] ; \VirtualProtect
00443184 |. 85C0 |TEST EAX,EAX ; 这就是判断你有没有在这个内存地址里面写int3(F2)断点,用VirtualProtect呵呵
00443186 |. 74 39 |JE SHORT elementc.004431C1
00443188 |. A1 98D89000 |MOV EAX,DWORD PTR DS:[90D898]
0044318D |. 8B7424 14 |MOV ESI,DWORD PTR SS:[ESP+14]
00443191 |. 8BFB |MOV EDI,EBX
00443193 |. 8B4CE8 04 |MOV ECX,DWORD PTR DS:[EAX+EBP*8+4]
00443197 |. 8D4424 10 |LEA EAX,DWORD PTR SS:[ESP+10]
0044319B |. 8BD1 |MOV EDX,ECX
0044319D |. 50 |PUSH EAX ; /pOldProtect
0044319E |. C1E9 02 |SHR ECX,2 ; |
004431A1 |. F3:A5 |REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI] ; |
004431A3 |. 8BCA |MOV ECX,EDX ; |
004431A5 |. 83E1 03 |AND ECX,3 ; |
004431A8 |. F3:A4 |REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI] ; |
004431AA |. 8B15 98D89000 |MOV EDX,DWORD PTR DS:[90D898] ; |
004431B0 |. 8B4C24 14 |MOV ECX,DWORD PTR SS:[ESP+14] ; |
004431B4 |. 51 |PUSH ECX ; |NewProtect
004431B5 |. 8B44EA 04 |MOV EAX,DWORD PTR DS:[EDX+EBP*8+4] ; |
004431B9 |. 50 |PUSH EAX ; |Size
004431BA |. 53 |PUSH EBX ; |Address
004431BB |. FF15 C4E18400 |CALL DWORD PTR DS:[<&KERNEL32.VirtualProtect>] ; \VirtualProtect
程序里面还有其他的检测,遇到再说把。谢谢。
|
能力值:
( LV13,RANK:530 )
|
-
-
5 楼
武林外传。
这个的确很好过。
|
能力值:
( LV2,RANK:10 )
在线值:

|
-
-
6 楼
完全看不懂的东西就要留个名 以后在看
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
呵呵,这各算是小儿科了。在OD中直接修改VirtualProtect函数,让他不作任何事情就返回。然后你下你的断点就是了。
|