首页
社区
课程
招聘
请问如何将脱壳后的文件的IMT修正跨平台?
发表于: 2004-7-6 15:57 5517

请问如何将脱壳后的文件的IMT修正跨平台?

2004-7-6 15:57
5517
情况如没记错,好像Fly脱的98记事本(好像是Aspr1.3?)的那个,一般都不会超过十位数量的DLL加载出错。如在XP平台下脱好,能运行,到98就有DLL找不到链接DLL的情况,如果手动计算一下在出错平台那个加载出错相同功效的DLL填回去,就能运行正常,但这样会很麻烦,想请问有什么简便好用的方法能使一个上述情况脱壳后的文件将其修正为会独立判断平台所需DLL并正确加载的(即脱壳后的文件完美跨平台)?谢谢!

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

收藏
免费 2
支持
分享
最新回复 (4)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
脱的那个记事本无法在98下运行?
2004-7-6 19:04
0
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
3
Oh,fly你好!

以下是引用你的文章(情况雷同,你有除下面所述更好的方法吗?)

ASProtect V1.3B脱壳――飞速的UnPackMe

运行ImportREC,选择这个进程。把OEP改为000010CC,RVA=0000C000,大小=CB0
点“Get Import”,函数排列的比较“难看”,但全部是有效的。FixDump,正常运行!

修改以下几个函数,脱壳后的程序就也可以在Win98上运行了:

代码:

--------------------------------------------------------------------------------

0000C148  ntdll.dll         0255        RtlGetLastWin32Error//改为:kernel32.dll GetLastError
0000C3B8  ntdll.dll         02B3        RtlMoveMemory       //改为:kernel32.dll RtlMoveMemory
0000C450  ntdll.dll         0255        RtlGetLastWin32Error//改为:kernel32.dll GetLastError
0000C4F0  ntdll.dll         0255        RtlGetLastWin32Error//改为:kernel32.dll GetLastError
0000C970  ntdll.dll         0255        RtlGetLastWin32Error//改为:kernel32.dll GetLastError

--------------------------------------------------------------------------------

另外发现脱壳后的记事本当进行“保存”和“另存为”操作时会非法操作。把以下2处修改一下就正常了。

代码:

--------------------------------------------------------------------------------

00404FB0     FF15 80CC4000       call dword ptr ds:[40CC80];comdlg32.GetSaveFileNameA
//修改为:jmp dword ptr ds:[40CCA0]
00404FC8     FF15 A0CC4000       call dword ptr ds:[40CCA0];comdlg32.GetOpenFileNameA
//修改为:jmp dword ptr ds:[40CCA0]

--------------------------------------------------------------------------------

―――――――――――――――――――――――――――――――――
2004-7-6 22:12
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
4
这个是IAT处理的问题
当时没有妥善解决

更好的方法应该有,但是我不知道
2004-7-6 22:21
0
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
5
:p 当时没有妥善解决

我意思是:壳会根据运行时的平台,而作出正确的选择DLL,能否将这功能做成到脱件中?但壳的做法又好像不同于“天生”编译==未加壳前的?我也觉得自己问得很古怪!
2004-7-6 22:37
0
游客
登录 | 注册 方可回帖
返回
//