能力值:
( LV11,RANK:180 )
|
-
-
2 楼
push eax
mov eax,hinstDLL
add eax,2100h
call dword ptr [eax]
pop eax
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
谢谢楼上的,但是我上哪里去找 hinstDLL 呢?
我不是直接用汇编写代码,然后编译连接,而是OD里DIY现有代码,这个是有不同的!
|
能力值:
( LV11,RANK:180 )
|
-
-
4 楼
int DllMain(HINSTANCE hinstDll, DWORD dwReason,LPVOID lpResvered)
{
}
Dll 入口函数的第一个参数不就是吗
得看你的dll是怎么处理的~~
比如开头是~~
push ebp
mov ebp,esp
-----
那么 hinstDll == [ebp + 8 ]
那上面的那句就是
mov eax,dword ptr [ebp+8]
咯~~
要是你根本没机会在入口执行~~
那么也可以这样:
CodeA:
OD-->二进制-->编辑 改为 E8 00 00 00 00 即 call 下一条指令
总体就是这样;
db E8 00 00 00 00
pop eax
sub eax, XXX
add eax,10002100h
call dword ptr [eax]
;XXX是指CodeA 第一句指令即 db .... 的地址(以10000000为基址时)
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
感谢楼上,我似乎已经明白了...
|
|
|