首页
社区
课程
招聘
[求助]FLY老大Armadillo4.XCopyMem-II找ATI
发表于: 2005-6-23 23:26 4029

[求助]FLY老大Armadillo4.XCopyMem-II找ATI

2005-6-23 23:26
4029
还是那个记事本按老大说的我是这样做的,
再次载入主程序,下BP DebugActiveProcess 中断后看堆栈:
0012BCBC   0042871A  /CALL 到 DebugActiveProcess 来自 ARM4_0双.00428714
0012BCC0   00000C78  \ProcessId = C78
新开一个OllyDbg,附加进程ID C78的子进程
F9,再F12,会暂停在EP处
00438743 >- EB FE           jmp short ARM4_0双.<ModuleEntryPoint>
到这里是不是修改代00438743原代码EB FE改为55 8B
切换单进程,是不是指原来加载的程序呀,我下了断点后电脑提示说ID EA0的新进程已创建,然后就没有反应了,小弟很笨,加上这里FLY老大说得不是很清楚,所以我只好发贴贴请教一下大大.到底是怎么做的.老大能详细点吗?


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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
循环处修改为原来EP处代码
先脱标准壳看看是如何处理输入表
2005-6-23 23:30
0
雪    币: 226
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那请问一下,你说的切换到单进程是指后面加的子进程还是前面直接加载的程序呀?还有ARM的EP处的代码就是加了壳的程序刚用OD加载的头两句呀,例如:刚加载进去的的程序头是55 8B,子程序到就是改成558b?
2005-6-24 09:25
0
雪    币: 224
活跃值: (147)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
4
例如:
载入之后
00433999 A>/$  55              push ebp
0043399A   |.  8BEC            mov ebp,esp

那么记住55 8B(你载入的时候看到的是什么就是什么咯。。)

后面经过
bp WaitForDebugEvent
bp WriteProcessMemory
he WaitForDebugEvent
搜索---全部常数---FFFFFFF8

。。。。。。。。。。。。

这一系列操作就不说了
********
再次载入未脱壳程序,下BP DebugActiveProcess 中断后看堆栈:
0012BCBC   0042871A  /CALL 到 DebugActiveProcess 来自 ARM4_0双.00428714
0012BCC0   00000C78  \ProcessId = C78

新开一个OllyDbg,附加进程ID C78的子进程

接着就Alt+F9

00438743 >- EB FE           jmp short ARM4_0双.<ModuleEntryPoint>   //返回到这里

修改代00438743原代码EB FE改为55 8B(这就是还原代码了)

修改好了之后,就在你载入子进程的这个OD里面

BP OpenMutexA
Crtl+G 00401000

00401000     60                  pushad
00401001     9C                  pushfd
00401002     68 B4FB1200         push ***** ★ 堆栈里看到的值
00401007     33C0                xor eax,eax
00401009     50                  push eax
0040100A     50                  push eax
0040100B     E8 B4B2A577         call kernel32.CreateMutexA
00401010     9D                  popfd
00401011     61                  popad
00401012     E9 33F7A577         jmp kernel32.OpenMutexA

新建EIP,再次F9,再次中断,取消断点
*********************
he GetModuleHandleA+5, F9

适时返回。。。。

修改Magic Jump,再直接按F9中断

用Imprec1.6f选择子进程,填入OEP地址***,填RAV=***,SIZE=1000
不要按自动搜索IAT,直接按获取输入表,再按显示无效地址,剪掉修复抓取文件就OK了。

PS:中间有一个修复输入表的过程。。。。RAV以及SIZE的真正大小的得来很容易,,如果不会看看其他帖子,一般size填1000就可以了
2005-6-24 11:09
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
5
再次载入主程序
切换单成进程
2005-6-24 11:46
0
雪    币: 226
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
呵呵,大部分懂了,有问题还来问
2005-6-24 16:57
0
游客
登录 | 注册 方可回帖
返回
//