由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 一个非常有难度的问题
相关主题
做面试题真的能提高一个人的编程能力和兴趣吗?[请教]文件输入
《Photoshop元素聚焦》插图版[PDF]c++/C: args[0] 是可执行文件本身
为什么微软不提供中文的language pack有没有什么轮子可以管理大堆的binary文件啊?
C++设计疑问VS.net如何生成可执行文件的版本?
GitHub Student Developer Pack [Free]fork(): why both if and else are executed?
C语言,结构体转字符串。简单的难题GO似乎是目前最难反编译的代码了
妈的装了一天的windows7 service pack 1How to find the DLL dependency of an EXE file?
请教:Linux下gfortran一问In Vista, failed to start because its side-by-side configur (转载)
相关话题的讨论汇总
话题: pack话题: section话题: code话题: relocation话题: executable
进入Programming版参与讨论
1 (共1页)
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,要么就是解出来的程序还是在同一

1 (共1页)
进入Programming版参与讨论
相关主题
In Vista, failed to start because its side-by-side configur (转载)GitHub Student Developer Pack [Free]
a simple DLL and EXE questionC语言,结构体转字符串。简单的难题
问个DLL调用问题妈的装了一天的windows7 service pack 1
what is the meaning of this macro in visual studio, thanks请教:Linux下gfortran一问
做面试题真的能提高一个人的编程能力和兴趣吗?[请教]文件输入
《Photoshop元素聚焦》插图版[PDF]c++/C: args[0] 是可执行文件本身
为什么微软不提供中文的language pack有没有什么轮子可以管理大堆的binary文件啊?
C++设计疑问VS.net如何生成可执行文件的版本?
相关话题的讨论汇总
话题: pack话题: section话题: code话题: relocation话题: executable