能力值:
( LV2,RANK:10 )
|
-
-
26 楼
确实是不错
|
能力值:
( LV13,RANK:970 )
|
-
-
27 楼
最初由 peaceclub 发布 不过,在vb中如何用上述方法调用呢?我不会。 哪位仁兄告诉我一下! VB嵌汇编只有直接写OP。不过这个应该不麻烦。你E8一下看看
|
能力值:
( LV3,RANK:20 )
|
-
-
28 楼
谢谢学习顶
|
能力值:
(RANK:300 )
|
-
-
29 楼
最初由 dwing 发布 给出个另类方法: mod=LoadLibrary("xxx.dll"); //载入文件 func=(char*)mod+offset; //找到函数入口地址 __asm push param2 //参数2 __asm push param1 //参数1 ........
在 C 中呼叫地址,我通常用 function pointer
HINSTANCE mod;
int offset;
int (*func)( int, int );
...
mod = LoadLibrary( "xxx.dll" );
func = (void *)( (char*)mod + offset );
...
myvalue = func( 50, 100 ); //一般呼叫 如果呼叫 API 地址,便使用WINAPI 方式的 calling convention
int (WINAPI *MessageBoxPointer)( HWND, LPCTSTR, LPCTSTR, UNIT );
|
能力值:
( LV9,RANK:250 )
|
-
-
30 楼
VB中用CallWindowProc API调用即可。
重定位是个问题。要不然把父程序的基址改掉。
|
能力值:
( LV2,RANK:10 )
|
-
-
31 楼
UPUP
|
能力值:
( LV9,RANK:250 )
|
-
-
32 楼
最初由 peaceclub 发布 VB中用CallWindowProc API调用即可。 重定位是个问题。要不然把父程序的基址改掉。
改父程序的基址不行.我把父程序的基址改成了800000,加载目标exe(基址400000)后,Handle不是400000,晕.
怎么解决呢?
|
能力值:
( LV9,RANK:170 )
|
-
-
33 楼
自程序之中再套嵌自程序的时候,一般调用都发生错误,因为基地址变了,而EXE中的基地址还是原来的。
只有子程序中没有其他套嵌子程序,或者被套嵌的子程序寻址方式是动态(比如取此时的IP数进行变换),才可以正常运行,还有个前提是EXE自程序中不再存在对EXE全局变量的存取.........
我觉得用CREATE_SUSPENDED 形式的CreateProcess来建立进程,再调用进程中的子程序,或许效果好一点。
|
能力值:
( LV2,RANK:10 )
|
-
-
34 楼
你的思路我正在弄,但是好象不容易实现,通过CREATEPROCESS,怎么才能直接调用那个远程进程的CALL
|
能力值:
( LV13,RANK:970 )
|
-
-
35 楼
你直接LoadLibrary多好,为啥用CreateProcess,汉。吃饭
|
能力值:
( LV2,RANK:10 )
|
-
-
36 楼
LOADLIBRARY转载的函数若遇到程序用全局变量或者调用API,就会出错,这样的方法行不通
|
|
|