首页
社区
课程
招聘
[分享]Debug<<软件加密技术内幕>>--<<软件加密技术内幕>>读后感三篇
发表于: 2008-3-24 16:42 6060

[分享]Debug<<软件加密技术内幕>>--<<软件加密技术内幕>>读后感三篇

2008-3-24 16:42
6060
                                                        by Sing

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

收藏
免费 7
支持
分享
最新回复 (6)
雪    币: 557
活跃值: (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
初步认为楼主很彪悍
2008-3-24 16:58
0
雪    币: 47147
活跃值: (20410)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
感谢你反馈的这些bug,有些bug估计是Hying想偷懒,如用'rsr.'来判断是不是资源区块。

第三版外壳编写部分,是直接将这章搬过去,所不同的是,将原来的asm直接翻译成VC来描写主程序编写,估计相应的bug还是存在。
2008-3-24 17:27
0
雪    币: 297
活跃值: (27)
能力值: ( LV13,RANK:380 )
在线值:
发帖
回帖
粉丝
4
不可靠!
《色戒》: 女人不可靠
《苹果》: 男人不可靠
《投名状》:兄弟也不可靠
《集结号》:组织更不可靠

《windows》

所有节名通通不可靠,要看节的属性或数据目录
CODE, DATA, BSS,这些节名不可靠,要看节的属性
TLS, RSRC节名不可靠,要看数据目录中相关表项

VirtualSize不可靠, SizeOfRawData总可靠
计算VirtualSize,最好用(Next VirtualAddress - Current VirtualAddress)

---------------------引用
“”“我试着将'CODE','DATA'区块表的Misc.VirtualSize清零,程序仍然可以正确加载,因为这时有用的是SizeOfRawData 字段的值.但是只靠SizeOfRawData字段也是不可靠的,因为对于'BSS','.tls'区块来说,SizeOfRawData字段值为0,而这时Misc.VirtualSize便起到重要的作用了.所以仅仅只靠这两个字段中的一个是不够的,要配合起来使用,如:
---------------------引用
VirtualSize之所以能清零,是因为loader在验证程序是否合法时,当VirtualSize小于SizeOfRawData时,VirtualSize取SizeOfRawData,在你的程序中,碰巧,SizeOfRawData满足下面的公式。
不管怎么样,在对齐后,VirtualSize必须等于Current VirtualAddress - Next VirtualAddress,否则出现错误提示对话框。
这也解释了你得出的结论之一:SizeOfRawData取零时,VirtualSize可靠。
2008-3-24 17:46
0
雪    币: 186
活跃值: (15)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
5
谢谢tnttools的指点,也期待第三版...
2008-3-24 19:24
0
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
6
楼主很强大。。
2008-3-24 19:42
0
雪    币: 201
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
LZ很厉害,学习了
2008-3-24 19:51
0
游客
登录 | 注册 方可回帖
返回
//