首页
论坛
课程
招聘
[原创]不被OD分析原因之一和修补方法
2005-10-14 13:33 28824

[原创]不被OD分析原因之一和修补方法

2005-10-14 13:33
28824
作者:oHuangKeo

    有误之处,忘谅之.学习中...

    今在论坛里看到有人发贴说有程序不让OD分析.这很常见了,很多脱壳后的文件,弄得不好还就是不能用OD打开分析.但这种情况是程序一般也是不能运行的.现在的问题就是,程序可以正常运行,可是OD不能打开分析,说"Bad or unknown format of 32-bit executeable file '**.exe'".这句话说这个程序不是有效的32位可执行程序.明明可以运行的嘛.
    下面来给大家做个试验再说明原因.

    1.用十六进制工具打开NotePad,(别的EXE文件也行.)选中从'PE'开始的大小为0xE0的数据,复制,然后到文件地址为0x40处粘贴.(大家都知道,这里是DOS头的区域,除非在DOS下运行程序才会用到这一段数据.)
    2.把后面多余的数据用'0'填上[0x120-0x1BF]. 然后就是修正了.因为PE头位置定位到了0x40,所以得把0x3C处改为0x40.这个大家都是知道的.
    3.最后就是关键问题所在了. 把0x54地址的数据改为'8001',就是0x180.
    好,现在保存,运行程序看,OK,可以运行,没有问题.用OD再打开试试?哈哈,报错啦.

    下面说说原因,有说得不好的地方,大家不要笑话偶.
    OD在加载程序时,会先对程序进行分析.OD的作者写此程序就只是针对Win32下的PE文件(好像作者现在在开发2.0版本的,是分析64位程序的.)所以有比较SizeOfOptionalHandler,而在PE定义中,这个值是0xE0,是一个定值.OD比较这个值,如果是0xE0就对了,不等就是错误的EXE文件.
    我们刚才做的就是改变PE Handler的大小,后面多余的数据填'0'也是有意义的.这就是系统可以正常运行的原因.后面多余的'0'归属于DataDirectory中了.系统在加载时只加载16组数据,后面的顶多算为是PE结构的保留数据,好像在前16组中,也是有保留数据的.所以不会出错.
    附件中有我修改PE文件的录相,可以下载参考一下.

    修复这一BUG方法,把0045C671处的je改为jge,就是大于等于就可以了.

    通过小小修改PE就可以不让OD加载,但这也都是些小花样.OD的BUG是可以补的嘛.一定还会有更多的BUG,有待大家的发现.

附件:od_bug.rar

看雪招聘平台创建简历并且简历完整度达到90%及以上可获得500看雪币~

收藏
点赞0
打赏
分享
最新回复 (32)
雪    币: 114
活跃值: 活跃值 (10)
能力值: ( LV9,RANK:530 )
在线值:
发帖
回帖
粉丝
lnn1123 活跃值 13 2005-10-14 13:53
2
0
雪    币: 111
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
无奈无赖 活跃值 2005-10-14 14:36
3
0
嘿嘿嘿,很好!
雪    币: 201
活跃值: 活跃值 (34)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
dwing 活跃值 1 2005-10-14 14:43
4
0
打开OD的log可以发现原因:

文件页眉中的可选文件头大小非法 (240. instead of 224. bytes)

这一点看来是作者的失误了,因为可选文件头大小比E0大的话在任何平台都可以正常运行的。
雪    币: 454
活跃值: 活跃值 (22)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
prince 活跃值 16 2005-10-14 15:55
5
0
到作者主页上反馈一下吧~ 呵呵~
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wave 活跃值 1 2005-10-14 16:40
6
0
我用的传美版QQ,用od也没法跟踪,也不报错,就是点运行的时候,没反应,不知楼主能否提供点思路啊?
雪    币: 88
活跃值: 活跃值 (63)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
ohuangkeo 活跃值 3 2005-10-14 16:45
7
0
这个我就没研究过了,原因很多的.呵呵.问问高人吧.
雪    币: 200
活跃值: 活跃值 (13)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
shoooo 活跃值 16 2005-10-14 17:42
8
0
刚刚玩了一下
学习了
雪    币: 201
活跃值: 活跃值 (34)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
dwing 活跃值 1 2005-10-14 18:13
9
0
最初由 wave 发布
我用的传美版QQ,用od也没法跟踪,也不报错,就是点运行的时候,没反应,不知楼主能否提供点思路啊?


做到这点似乎更容易,查进程列表,查进程特征数据,象内存杀毒一样,发现时立即退出.
雪    币: 261
活跃值: 活跃值 (114)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
laoqian 活跃值 8 2005-10-15 11:34
10
0
加精吧,虽然文章不长,但是很精。
再简单说一下“3.最后就是关键问题所在了. 把0x54地址的数据改为'8001',就是0x180.”就好了,其实是pe头的一些问题,可以正好给大家讲讲,加深记忆!
雪    币: 101
活跃值: 活跃值 (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
闪电狼 活跃值 2005-10-15 12:13
11
0
谢谢 学习了
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wave 活跃值 1 2005-10-15 16:46
12
0
最初由 dwing 发布


做到这点似乎更容易,查进程列表,查进程特征数据,象内存杀毒一样,发现时立即退出.


难道是外挂作者怕别人用od跟踪,这说不过去吧?
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
AntiDebug 活跃值 2005-10-15 23:14
13
0
学习了!试用一下!
雪    币: 100
活跃值: 活跃值 (15)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
夜凉如水 活跃值 3 2005-10-16 13:40
14
0
最初由 wave 发布


难道是外挂作者怕别人用od跟踪,这说不过去吧?
也许吧,现在的 很多作者为防御od调试,什么点子都能用到!!!!!!!!
雪    币: 100
活跃值: 活跃值 (144)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
yzslly 活跃值 4 2005-10-16 16:49
15
0
顶一下,学习了
雪    币: 219
活跃值: 活跃值 (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
ngaut 活跃值 6 2005-10-17 11:04
16
0
不错,够精练!!
雪    币: 205
活跃值: 活跃值 (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
starluck 活跃值 1 2005-10-17 12:52
17
0
错楼主的位置说句话,如果OD能载入,但是按下F9程序不能运行起来,通常是什么原因呢?
为这事我郁闷好久了
雪    币: 88
活跃值: 活跃值 (63)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
ohuangkeo 活跃值 3 2005-10-17 13:35
18
0
是程序里有检查OD的吧.你说的不能运行是出现的什么问题呢?这种情况很我多的.可以说来听听.
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
usa 活跃值 2005-10-17 14:30
19
0
最初由 ngaut 发布
不错,够精练!!
雪    币: 200
活跃值: 活跃值 (14)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
hud 活跃值 2 2005-10-17 19:33
20
0
楼主,你好!你的文章很好,让我增长了知识开了眼界,非常感谢。

我试着用你说明的方法去修改notepad,但总是不成功。我发现我的notepad和你的有些差别,在录像中是你的记事本的PE是从E0开始到1BF。而我的系统是XP,记事本是英文版的,PE开始的地方是从E8开始的。我试过好多种方案都不成功,比如平移8个字节(因为和录像上相差8个字节),或者完全照你的录像做,都不行。请指点。

还有,我曾经碰到过一个软件kanjiweb3.0,用OD打开后,提示无效PE,然后是一片空白,好像照你说的方法改过记事本后,在OD中仍然能看到东西。关于这个问题我曾经在这里发过贴子问,但没人回答。请指点。
雪    币: 88
活跃值: 活跃值 (63)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
ohuangkeo 活跃值 3 2005-10-17 20:08
21
0
把你的英文版的Notepad.exe打个包贴上来看看吧.
雪    币: 200
活跃值: 活跃值 (14)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
hud 活跃值 2 2005-10-18 00:42
22
0
谢谢你!可是我现在没有上传附件的权限啊。
雪    币: 88
活跃值: 活跃值 (63)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
ohuangkeo 活跃值 3 2005-10-18 00:54
23
0
ohuangkeo@hotmail.com.发给我吧.
雪    币: 200
活跃值: 活跃值 (14)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
hud 活跃值 2 2005-10-18 10:45
24
0
谢谢你!我已经发给你了。
雪    币: 195
活跃值: 活跃值 (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
aki 活跃值 2 2006-2-18 20:02
25
0
今天看到这个老贴了,顺便说下吧。如果程序入口部分不在code段也是不能被分析得。许多程序脱壳后不能被分析差不多就是这个原因吧
游客
登录 | 注册 方可回帖
返回