首页
社区
课程
招聘
DLL通信问题
发表于: 2012-5-25 14:42 6209

DLL通信问题

2012-5-25 14:42
6209
程序A 将一个DLL(DLL包含了一个函数Add) 注入一个程序B后,程序A 怎么在程序B中调用函数Add??

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 175
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
LoadLibrary?
2012-5-25 14:48
0
雪    币: 142
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
createremotethread...
把动态调用该函数的代码写成shellcode,注入到目标里,再createremotethread
这么说来其实和注入dll一样,注入dll是动态调用loadlibrary,这次是注入成功后再来一次createremotethread,动态调用那个add....
2012-5-25 15:06
0
雪    币: 142
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
刚才那种方法不需要通讯,貌似比较麻烦
如果是通讯的话,应该好实现一点,那就是进程间通讯,论坛上很多,共享节,sendmessage,lpc,管道,都可以啊
2012-5-25 15:10
0
雪    币: 688
活跃值: (110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个createremotethread我必须得知道函数Add在注入后程序B的地址,如果要知道这个地址我还需要通过PE解析动态分析出地址吗??
2012-5-25 15:52
0
雪    币: 142
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
需要的,add可能还需要导出
感觉这样很麻烦啊
还是用第二种吧,进程间通讯,自己定义一套协议,收到xx指令执行yy,比较正规和稳定
2012-5-25 16:18
0
雪    币: 688
活跃值: (110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
可以具体说说吗?
2012-5-25 17:05
0
雪    币: 142
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个原理就是那样了,剩下的就是编码了
这么晚了才回复你,不好意思
所以匆匆忙忙写个份代码,核心部分也是临时在看雪找到
http://bbs.pediy.com/showthread.php?t=51287&highlight=%E9%80%9A%E8%AE%AF
不过这个类有些问题,就是只认识第一次发的命令,我临时用,就没看是哪里的毛病了,你可以找找,要是修复好可以再发上来

附件是VS08的工程,一个DLL,一个EXE
把Dll注入到目标进程,然后就可以用exe给它发命令了(注意那个通讯类可能有点毛病,只认识第一次发的命令,有兴趣修改修改)
上传的附件:
2012-5-26 00:36
0
雪    币: 688
活跃值: (110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢你哦..........
2012-5-26 08:12
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
10
程序 B 不知道自己会注入了,dll 要想执行外部进程的指令,可以通过消息,或者管道,socket  这样的方式通讯。
2012-5-26 12:35
0
游客
登录 | 注册 方可回帖
返回
//