首页
社区
课程
招聘
[求助]将进程 B 贴到进程 A 空间中,如何让进程B跑起来?求教。
发表于: 2017-12-14 17:46 2820

[求助]将进程 B 贴到进程 A 空间中,如何让进程B跑起来?求教。

2017-12-14 17:46
2820

初学PE结构,涉及到了重定位表和导入表。根据练习要求, 需要将一个 exe 文件(以下简称进程 A)贴到自己的进程中(以下简称进程B)。这两个进程都是我自己写的程序。


大概的实现思路如下:
1、将进程 A 从磁盘文件中读入到内存然后进行拉伸
2、在进程 B 中申请一段内存空间,将进程A拉伸后的 ImageBuffer 贴到进程B的进程空间中
3、如果进程 A 在进程B中并未占到进程 A ImageBase 所预定的地址,则开始修复重定位表
4、因为进程 A 并没有进行“加载”操作, 所以需要修复进程 A 的IAT表
5、做到这一步,按我想的话应该直接当当前线程 EIP 跳到进程 A 的 ImageBase + AddressEntryPoint 那么就可以让进程A跑起来了,但是现在的问题是不知道这个所谓的“EIP”跳转应该如何去做。


求各路大大帮忙指点迷津, 刚学PE, 多多包含。在线等。谢谢了先。


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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 782
活跃值: (3430)
能力值: ( LV7,RANK:140 )
在线值:
发帖
回帖
粉丝
2
如果本身有注入到进程B,那么就直接jmp到入口点;
如果没有,那就开远程线程到入口点
我猜的
2017-12-14 17:57
0
雪    币: 21
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
yeyeshun 如果本身有注入到进程B,那么就直接jmp到入口点; 如果没有,那就开远程线程到入口点 我猜的
我将进程  A  读到了内存然后直接复制到了  B  进程的进程空间中。
2017-12-14 18:16
0
雪    币: 12
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
em......看描述不就是  傀儡进程么..
仔细看不是,em..你这个需求
参考 blackbone
2017-12-15 09:56
0
雪    币: 293
活跃值: (287)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5



FlyingGuys

我将进程 A 读到了内存然后直接复制到了 B 进程的进程空间中。
你这也行?进程A导入dll跟你进程B导入的dll相同吗,除了三大核心dll,其他地址一样吗?
要简单跳过去还不简单啊
SuspendThread
GetThreadContext
SetThreadContext  直接设置 eip。

或者CreateRemoteThread。

或者 

SuspendThread

GetThreadContext

WriteProcessMemory 0xE9 ??  ??  ??  ??  (不想算偏移量,可以直接 0x68  xx  xx   xx  xx 0xC3 )
ResumeThread
2017-12-15 10:15
0
雪    币: 21
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
瀚海云烟 FlyingGuys 我将进程 A 读到了内存然后直接复制到了 B 进程的进程空间中。 你这也行?进程A导入dll跟你进程B导入的dll相同吗,除了三大 ...
搞定了,  我直接开了一个线程,  然后把线程函数给得是  ImageBase+AddressEntryPoint
2017-12-15 12:39
0
游客
登录 | 注册 方可回帖
返回
//