能力值:
( LV2,RANK:10 )
|
-
-
2 楼
把这个E8调用改成一个短跳,然后完事了自己来一个E8跳到它想跳的地方咯。。
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
瞅瞅 Client.0066A000 里面是不是用到了 EDX或ECX
如果用到了就找下 DWORD PTR DS:[E0C1BC] 的基址; 然后用偏移算出真正的值再CALL
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
[QUOTE=Nermor;1034870]瞅瞅 Client.0066A000 里面是不是用到了 EDX或ECX
如果用到了就找下 DWORD PTR DS:[E0C1BC] 的基址; 然后用偏移算出真正的值再CALL[/QUOTE]
谢谢! 我试试看 ! 应该就是这样吧!@
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
[QUOTE=Nermor;1034870]瞅瞅 Client.0066A000 里面是不是用到了 EDX或ECX
如果用到了就找下 DWORD PTR DS:[E0C1BC] 的基址; 然后用偏移算出真正的值再CALL[/QUOTE]
CALL 里面用到了EDX 和ECX 不过我不知道怎么找DWORD PTR DS:[E0C1BC]的基质 麻烦帮忙讲下好吗? 谢谢
|
能力值:
( LV3,RANK:20 )
|
-
-
6 楼
试试 用 CE 搜索这个值, 看看存储是这个值的内存地址是否是一个基址.
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
或者直接以 0xE0C1BC 的方式来调用
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
E0C1BC这个值是一个基质..就是不知道 调用这个CALL的时候 参数怎么写?
mov edx,[e0c1bc]
push 0
mov ecx,[edx+264]
call 0066a000
这个
DS:[E0C1BC]的值怎么获得..
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
[QUOTE=bullshit刘;1035137]E0C1BC这个值是一个基质..就是不知道 调用这个CALL的时候 参数怎么写?
mov edx,[e0c1bc]
push 0
mov ecx,[edx+264]
call 0066a000
这个
DS:[E0C1BC]的值怎么获得..[/QUOTE]
.386
.model flat,stdcall
option casemap:none
.code
foo proc
mov edx,dword ptr [3100h]
ret
foo endp
get_add proc arg
mov eax,arg
add eax,1
mov eax,dword ptr [eax]
ret
get_add endp
start:
invoke get_add,offset foo
.if eax ;EAX现在的值就是上面的3100h
call eax
.endif
ret
|
能力值:
( LV3,RANK:20 )
|
-
-
10 楼
VC++ 的话, DWORD* pdwBase = (DWORD*) 0xE0C1BC;
*pdwBase 就是指向这个基址对应的数据值了
|
|
|