P***t 发帖数: 1006 | 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 ,知道全局再往下读就更好
了。 |
P*****f 发帖数: 2272 | 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 ,知道全局再往下读就更好 : 了。
|
P***t 发帖数: 1006 | 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 ,知道全局再往下读就更好 : 了。
|
P*****f 发帖数: 2272 | 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? 这个感觉很有难度。
|
P***t 发帖数: 1006 | 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,要么就是解出来的程序还是在同一
|