首页
社区
课程
招聘
一个程序创建个子进程后关闭自己 附加子进程的问题
发表于: 2010-2-28 01:33 9265

一个程序创建个子进程后关闭自己 附加子进程的问题

2010-2-28 01:33
9265
我修改了一个跳转 但是保存文件时说无法定位数据
原来以为 这个子进程是后释放的 定位不了数据
后来发现 用OD附加的进程 都不能保存到文件   
请教下 这个能解决吗?

还有 就是 如果不用附加的方式 怎么才能直接调试  后创建的子进程啊

我找到了几个文章 说A.exe 调用b.exe  改b的 第一个字节为CC  但是  我这个是一个程序
主进程打开子进程自己就关了 情况有点不一样啊。。。。
请大家帮我看看 谢谢了

THY loadergen 0.6  这个软件  谁用过 指点下  修改代码 用什么格式啊  它的说明没看明白。。。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (41)
雪    币: 103
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我有尝试了下  用OD附加进程   有的能保存  有的保存不了。。。。。
还有就是我这个子进程附加到OD时候 提示  32位可执行文件的格式错误或者未知  但是载入后 还能继续运行的  就是修改的代码 保存说是定位不了数据
2010-2-28 10:03
0
雪    币: 103
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
他的主进程 创建了子进程后 自己就关闭了     
我能给子进程做loader吗?
主进程和子进程名字是一样的  但是进程pid不一样
给主进程做loader  运行一下 就关了 没啥用
2010-2-28 10:59
0
雪    币: 590
活跃值: (177)
能力值: ( LV9,RANK:680 )
在线值:
发帖
回帖
粉丝
4
对b.exe做个“外挂” 用文件偏移来定位关键点 patch 呵呵 馊主意一个 也可以尝试用16进制编辑器搜索修改B文件本身
2010-2-28 11:39
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
下bp CreateProcessW断点 F9. 被断下后看下堆栈里的信息
用OD加载参数
2010-2-28 11:48
0
雪    币: 103
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
bp CreateProcessA 可以断下来  但是 你说的  OD加载参数 我不明白  我新手  多谢指教
2010-2-28 11:55
0
雪    币: 2513
活跃值: (615)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
关注CreateProcessW的第一个和第2个参数
就能找到程序路径和启动参数
2010-2-28 13:59
0
雪    币: 103
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
0012FB58   003DE37B  /CALL 到 CreateProcessA 来自 FileCDPr.003DE376
0012FB5C   00000000  |ModuleFileName = NULL
0012FB60   00C80250  |CommandLine = "C:\Documents and

Settings\Administrator\桌面\新建文件夹1\新建文件夹\测试.exe"
0012FB64   00000000  |pProcessSecurity = NULL
0012FB68   00000000  |pThreadSecurity = NULL
0012FB6C   00000000  |InheritHandles = FALSE
0012FB70   00000004  |CreationFlags = CREATE_SUSPENDED
0012FB74   00000000  |pEnvironment = NULL
0012FB78   00000000  |CurrentDir = NULL
0012FB7C   0012FBC8  |pStartupInfo = 0012FBC8
0012FB80   0012FBB8  \pProcessInfo = 0012FBB8
0012FB84   0012FC30  指向下一个 SEH 记录的指针
0012FB88   003DE421  SE处理程序

这个就是参数吗   我看参数大部分都是空啊
运行的还是它自己  只是调用了自己程序里的FileCDPr  去创建 进程
我用这个参数 能用OD 加载吗?
2010-2-28 16:39
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
子进程创建后是挂起的,可再往下跟一下到ResumeThread,看激活前是否修改了什么
2010-2-28 19:43
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
把exe的文件名称和需要补丁的代码字节告诉我,写一个loader给你。
2010-2-28 19:46
0
雪    币: 103
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
ResumeThread 调用到这个函数时候 子进程已经运行起来了  不受OD控制了
exe 文件 我用keymaker  做了一个loader 不好使。。。。    他主进程名字 和子进程名字一样 都是运行的一个exe  我不会给子进程做loader
能大概指点下吗?
2010-2-28 20:50
0
雪    币: 2513
活跃值: (615)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
虽然是同一个程序
但程序内部肯定是走的2条不同的路子
2010-2-28 23:20
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
9楼的正解。。。
2010-2-28 23:27
0
雪    币: 103
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
恩 我也想过 估计是走的 不同的路子  我有可能对子进程做loader  或者 直接加载这个子进程吗
2010-2-28 23:28
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
在调用CreateProcess和ResumeThread之间,一定存在WriteProcess,另外还有CreateProcess创建的时候是否带参数,把所有的WriteProcess全记录下来,写了些什么
2010-2-28 23:29
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
16
然后 手工对b.exe进行补丁
2010-2-28 23:29
0
雪    币: 103
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
WriteProcess 这东西有 我找找参数  
CreateProcess的参数 在8楼   (是不是参数 我不太懂。。)
2010-2-28 23:30
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
18
我指的参数,比如命令行 ipconfig/all 这个/all就是参数
2010-2-28 23:31
0
雪    币: 103
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
这个 不是b.exe  是和a.exe 一个名字的     同一个exe文件
2010-2-28 23:32
0
雪    币: 103
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
0012FB58   003DE37B  /CALL 到 CreateProcessA 来自 FileCDPr.003DE376
0012FB5C   00000000  |ModuleFileName = NULL
0012FB60   00C80250  |CommandLine = "C:\Documents and

Settings\Administrator\桌面\新建文件夹1\新建文件夹\测试.exe"

这个后边 没参数啊  直接exe
2010-2-28 23:33
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
21
嗯,我看到了,你就记录所有的WriteProcess就行了
2010-2-28 23:38
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
22
想要秒杀它,就学着写插件吧,哈哈
2010-2-28 23:41
0
雪    币: 103
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
一共2个 wait的    下边 就 setThreadContext   和 Resum这个了

0012FC18   003DE564  /CALL 到 WriteProcessMemory 来自 FileCDPr.003DE55F
0012FC1C   00000080  |hProcess = 00000080 (window)
0012FC20   7FFDC008  |Address = 7FFDC008
0012FC24   0012FD14  |Buffer = 0012FD14
0012FC28   00000004  |BytesToWrite = 4
0012FC2C   0012FD18  \pBytesWritten = 0012FD18
0012FC30   0012FD44  指向下一个 SEH 记录的指针
0012FC34   003DE633  SE处理程序
0012FC38   0012FD30
0012FC3C   00BB2044  ASCII "MZP"

0012FC18   003DE580  /CALL 到 WriteProcessMemory 来自 FileCDPr.003DE57B
0012FC1C   00000080  |hProcess = 00000080 (window)
0012FC20   00400000  |Address = 400000
0012FC24   011C0000  |Buffer = 011C0000
0012FC28   000D4000  |BytesToWrite = D4000 (868352.)
0012FC2C   0012FD18  \pBytesWritten = 0012FD18
0012FC30   0012FD44  指向下一个 SEH 记录的指针
0012FC34   003DE633  SE处理程序
0012FC38   0012FD30
0012FC3C   00BB2044  ASCII "MZP"
2010-2-28 23:42
0
雪    币: 103
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
插件 是OD的  还是什么啊   指点下方向  我就研究写插件了  呵呵
2010-2-28 23:43
0
雪    币: 103
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
本来很好破解的 一个东西  居然弄个 子进程 来运行程序    估计子进程 还带壳还是怎么的  修改的数据没办法保存
对子进程做loader  我看keymaker 也没提供这功能啊、。。。。
2010-2-28 23:44
0
游客
登录 | 注册 方可回帖
返回
//