首页
社区
课程
招聘
改造PE中的函数为导出函数
发表于: 2005-3-14 10:45 16722

改造PE中的函数为导出函数

2005-3-14 10:45
16722
收藏
免费 8
支持
分享
最新回复 (35)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
确实是不错
2005-4-11 23:21
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
27
最初由 peaceclub 发布
不过,在vb中如何用上述方法调用呢?我不会。
哪位仁兄告诉我一下!


VB嵌汇编只有直接写OP。不过这个应该不麻烦。你E8一下看看
2005-4-11 23:34
0
雪    币: 214
活跃值: (70)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
28
谢谢学习顶
2005-4-12 00:03
0
雪    币: 2319
活跃值: (565)
能力值: (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 );
2005-4-12 08:32
0
雪    币: 255
活跃值: (207)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
30
VB中用CallWindowProc API调用即可。
重定位是个问题。要不然把父程序的基址改掉。
2005-4-12 10:26
0
雪    币: 107
活跃值: (54)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
UPUP
2005-4-12 11:00
0
雪    币: 255
活跃值: (207)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
32
最初由 peaceclub 发布
VB中用CallWindowProc API调用即可。
重定位是个问题。要不然把父程序的基址改掉。

改父程序的基址不行.我把父程序的基址改成了800000,加载目标exe(基址400000)后,Handle不是400000,晕.
怎么解决呢?
2005-4-12 11:30
0
雪    币: 4925
活跃值: (2378)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
33
自程序之中再套嵌自程序的时候,一般调用都发生错误,因为基地址变了,而EXE中的基地址还是原来的。

只有子程序中没有其他套嵌子程序,或者被套嵌的子程序寻址方式是动态(比如取此时的IP数进行变换),才可以正常运行,还有个前提是EXE自程序中不再存在对EXE全局变量的存取.........

我觉得用CREATE_SUSPENDED 形式的CreateProcess来建立进程,再调用进程中的子程序,或许效果好一点。
2005-4-13 12:40
0
雪    币: 217
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
你的思路我正在弄,但是好象不容易实现,通过CREATEPROCESS,怎么才能直接调用那个远程进程的CALL
2006-6-30 11:27
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
35
你直接LoadLibrary多好,为啥用CreateProcess,汉。吃饭
2006-6-30 18:11
0
雪    币: 217
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
36
LOADLIBRARY转载的函数若遇到程序用全局变量或者调用API,就会出错,这样的方法行不通
2006-6-30 19:15
0
游客
登录 | 注册 方可回帖
返回
//