avatar
一个非常有难度的问题# Programming - 葵花宝典
P*t
1
呵呵,这个题目估计所有的牛人都会接着往下看了吧!
想问问 UPX http://upx.sourceforge.net/ 这样的 Executable Packing tool,是怎么PACK的。我查过它产生的可执行文件(Windows Ver),所有的CODE SECTION被 PACK成了两个SECTION,而且 code start address 似乎都不太一样了。是不是它自己同时还做了 code relocation? 另外似乎 import table 位置也不一样,不知道是怎么PACK的。
准备慢慢读读原程序。不过如果有人有 general 的 idea ,知道全局再往下读就更好
了。
avatar
P*f
2
没看具体project.
是否和 address space randomization有关?

呵呵,这个题目估计所有的牛人都会接着往下看了吧!
想问问 UPX http://upx.sourceforge.net/ 这样的 Executable Packing tool,是怎么PACK的。我查过它产生的可执行文件(Windows Ver),所有的CODE SECTION被 PACK成了两个SECTION,而且 code start address 似乎都不太一样了。是不是它自己同时还做了 code relocation? 另外似乎 import table 位置也不一样,不知道是怎么PACK的。
准备慢慢读读原程序。不过如果有人有 general 的 idea ,知道全局再往下读就更好
了。

【在 P***t 的大作中提到】
: 呵呵,这个题目估计所有的牛人都会接着往下看了吧!
: 想问问 UPX http://upx.sourceforge.net/ 这样的 Executable Packing tool,是怎么PACK的。我查过它产生的可执行文件(Windows Ver),所有的CODE SECTION被 PACK成了两个SECTION,而且 code start address 似乎都不太一样了。是不是它自己同时还做了 code relocation? 另外似乎 import table 位置也不一样,不知道是怎么PACK的。
: 准备慢慢读读原程序。不过如果有人有 general 的 idea ,知道全局再往下读就更好
: 了。

avatar
P*t
3
我想它连完全没有RELOCATION INFO的EXE都能PACK,要么就是解出来的程序还是在同一
虚拟地址,要么它得反汇编所有代码,自己RELOCATE? 这个感觉很有难度。

【在 P*****f 的大作中提到】
: 没看具体project.
: 是否和 address space randomization有关?
:
: 呵呵,这个题目估计所有的牛人都会接着往下看了吧!
: 想问问 UPX http://upx.sourceforge.net/ 这样的 Executable Packing tool,是怎么PACK的。我查过它产生的可执行文件(Windows Ver),所有的CODE SECTION被 PACK成了两个SECTION,而且 code start address 似乎都不太一样了。是不是它自己同时还做了 code relocation? 另外似乎 import table 位置也不一样,不知道是怎么PACK的。
: 准备慢慢读读原程序。不过如果有人有 general 的 idea ,知道全局再往下读就更好
: 了。

avatar
P*f
4
查了一下
应该和ASLR(address space layout randomize) 有关。
具体技术可以wiki之。linux2.6实现了这个。最新的vista也实现了
http://blogs.msdn.com/michael_howard/archive/2006/05/26/608315.aspx
一个难点的确是没有relocation info情况下randomize exe code.主要技巧是
控制mmap,map两块相同structure的block.一个在原来地址,但page protection设为
non-executable.
,一个随机。然后通过拦截page fault重定向来实现原指令

我想它连完全没有RELOCATION INFO的EXE都能PACK,要么就是解出来的程序还是在同一
虚拟地址,要么它得反汇编所有代码,自己RELOCATE? 这个感觉很有难度。

【在 P***t 的大作中提到】
: 我想它连完全没有RELOCATION INFO的EXE都能PACK,要么就是解出来的程序还是在同一
: 虚拟地址,要么它得反汇编所有代码,自己RELOCATE? 这个感觉很有难度。

avatar
P*t
5
酷!可能就是类似的东西。我先读读相关的资料。

【在 P*****f 的大作中提到】
: 查了一下
: 应该和ASLR(address space layout randomize) 有关。
: 具体技术可以wiki之。linux2.6实现了这个。最新的vista也实现了
: 见http://blogs.msdn.com/michael_howard/archive/2006/05/26/608315.aspx
: 一个难点的确是没有relocation info情况下randomize exe code.主要技巧是
: 控制mmap,map两块相同structure的block.一个在原来地址,但page protection设为
: non-executable.
: ,一个随机。然后通过拦截page fault重定向来实现原指令
:
: 我想它连完全没有RELOCATION INFO的EXE都能PACK,要么就是解出来的程序还是在同一

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。