首页
社区
课程
招聘
[原创]例说Exe程序作为DLL进行加载
2008-7-17 23:05 33783

[原创]例说Exe程序作为DLL进行加载

nbw 活跃值
24
2008-7-17 23:05
33783
收藏
点赞7
打赏
分享
最新回复 (63)
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
nbw 24 2008-7-22 10:04
26
0
是啊是啊。还是自己有Reloc好,比如要调2个exe,如果让他们用4xxx就有些冲突了,虽然可以来回复制过去,但还有一些时候,根本就不可能把4xxx空间让出来。
雪    币: 403
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
felixmia 2008-7-22 18:45
27
0
喔! 又有东西要学习.....
雪    币: 381
活跃值: (130)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
HSQ 8 2008-7-22 20:01
28
0
原来可以这样,学习。。。
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
aki 2 2008-7-22 23:56
29
0
调两个exe而不需要重定位也是有办法实现的
雪    币: 8191
活跃值: (4268)
能力值: ( LV15,RANK:2459 )
在线值:
发帖
回帖
粉丝
ccfer 16 2008-7-23 10:23
30
0
把400000留给第三方exe也只是举个例子,大家思路可以深一点,
自己的主程序也是可以有重定位的,即使先占据了第三方exe的默认空间,
也可以把自己再加载一次到其他空间去执行,然后再把第三方exe加载到他需要的位置

能完美增加reloc固然是好,问题是谁能写出来这样完美的工具?
雪    币: 268
活跃值: (10)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
三根火柴 4 2008-7-23 10:44
31
0
学习学习,很实用的一个技术啊,哈
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
nbw 24 2008-7-23 12:10
32
0
你说的这种完美工具,思路我倒有,主要方法是把我说的那个老罗代码修改的东西再完善下,把需要定位的地址都给找到,然后以调试方式启动程序,对这些指针指向的内容进行监控,如果程序执行过程中对这些可疑地址进行调用了,那么这个地址基本就应该需要重定位,即使这个地方找错了,要找出来问题也很简单。

关键是有些人根本就不考虑思路深浅,总觉得你搞得这东西对劳资不管用,或者你这东西劳资随便就能搞定,总之一句话“劳资看你不爽”
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
北极星2003 25 2008-7-23 12:48
33
0
想在exe中完美增加reloc,这是没戏的了。
或者可以考虑虚拟地址映射机制
例如a.exe,b.exe的默认基地址都是0x400000,而实际分别是0x1000000,0x2000000
那么是否能这个过程中加一个我们自己实现的地址映射层,让exe以为自己还是在默认基地址上执行。
楼下的继续发挥~~
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
北极星2003 25 2008-7-23 12:53
34
0
他们只重结果,不重思路不重过程,不理就是了。
雪    币: 1946
活跃值: (238)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
Bughoho 8 2008-7-23 12:58
35
0
sustain ccfer,非通用工具意味着得针对每个exe都做分析.

还有,其实楼上们跑题了
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
nbw 24 2008-7-23 13:10
36
0
想起来了牛人写的虚拟机,严重怀念~
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
笨笨雄 14 2008-7-24 01:10
37
0
将要调用的EXE的原IMG BASE  + IMG SIZE的区域改成 PAGE_EXECUTE

注册一个SEH,读写异常产生时,检查EIP是否在新IMG BASE + IMG SIZE范围内,是则重定向代码。否则,设置TF,恢复页属性,跑过这条指令重新设置PAGE_EXECUTE

这样貌似就不需要具体分析也可以顺利跑了?

我喜欢技术讨论,觉得可以学到很多东西。

虽然大家都知道有敌意的人肯定不会跟你说具体技术,不过真讨论起来的时候,难免伤感情。在KINGSOFT的时候就跟LOVEBOOM“讨论”过几次,不过“讨论”的第二天一起吃午饭的时候,他跟我说某些话别放心上。尽管我真的认为是讨论,但是他已经觉得是“争吵”了。这个时候我知道我肯定在讨论的过程中,用词或者语气出问题了。

我一直都在尝试改,不过今天早上上班的又被某人提醒了一下。我想大家也跟我一样,心思都放技术上,要使自己言行变得更友善不容易。不过我很肯定大家都是没恶意的
雪    币: 1946
活跃值: (238)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
Bughoho 8 2008-7-24 01:25
38
0
你没考虑到以下情况
1.错误的代码读了有效地址
2.push 40xxxxx
   call    mscvrt.strlen
   EIP 这下管不着了
还可以举例出很多

其实这种方法很难实现完美,也只能不停的对新的EXE不停的修修补补自己的代码.维护工作量太大.nbw能做到这个地步算是极致了吧。



假如2个程序都用到了同1个API,不知道返回地址怎么写才好呢
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
笨笨雄 14 2008-7-24 01:39
39
0
将要调用的EXE的原IMG BASE  + IMG SIZE的区域改成 PAGE_EXECUTE

所以即使是有效地址也可以抛异常。。。

2.push 40xxxxx
   call    mscvrt.strlen

这个依然可以抛异常,要保证第一时间接收到异常,而不是被RTL接收到,貌似可以选择用VEH?
再加条规则吧,系统区域遇到这样的异常就模拟执行,不改代码了。。。
不过还真的变虚拟机了。。。
雪    币: 1946
活跃值: (238)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
Bughoho 8 2008-7-24 01:50
40
0
正所谓一山不容二虎,有时越用奇技淫巧去实现,却越有可能出现更多的问题。
就好像要达到一个目的有多条路可走,有的路可能需要劈材砍木,遭虎遇狼,有的路却是康庄大道。
我觉得北极熊2008说的思路其实不是思路,而是奇技淫巧。
雪    币: 7300
活跃值: (3758)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
海风月影 22 2008-7-24 10:06
41
0
给个例子讨论才有意思

http://bbs.pediy.com/showthread.php?t=66386
编译一下这个帖子的附件里面的代码
有信心完美添加reloc的可以讨论一下如何添加这个程序的重定位表

我编译了2份,带重定位表和不带重定位表,做个对比
上传的附件:
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
北极星2003 25 2008-7-24 10:25
42
0
汗一把,严重抗议楼上的给我胡乱给名,还这么丑~~
思路也好,奇技淫巧也罢。当我没说,你们继续,我闪人。
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
笨笨雄 14 2008-7-24 12:17
43
0
你的话,跟领导说的一样,搞得太复杂,一是开发周期太长,二是维护太难,出错太容易

不过因为种种原因,虚拟机已经有了,顺便用是没问题的~~~

技术积累很重要
雪    币: 2071
活跃值: (77)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
sessiondiy 4 2008-7-24 12:19
44
0
有种想法.
OD超会分析的. 是否可修改OD让他边分析边建 .reloc
雪    币: 1946
活跃值: (238)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
Bughoho 8 2008-7-24 12:43
45
0
[QUOTE=海风月影;485834]给个例子讨论才有意思

http://bbs.pediy.com/showthread.php?t=66386
编译一下这个帖子的附件里面的代码
有信心完美添加reloc的可以讨论一下如何添加这个程序的重定位表

我编译了2份,带重定位表和不带重定位表,做个对比[/QUOTE]

我就看到有人把马甲身份给暴露了
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2008-7-24 13:29
46
0
bughoho最近在学成语啊
雪    币: 405
活跃值: (44)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Mike1234567890 2008-7-25 13:28
47
0
不管怎么样
这个思路确实不错
雪    币: 209
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dzgz 2008-7-25 19:34
48
0
太麻烦了.学习!
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chuangwai 2008-7-29 21:03
49
0
这个要好好学习下
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
WINIO 2008-7-30 10:20
50
0
加上脱壳功能,然后处理
游客
登录 | 注册 方可回帖
返回