当前位置: 技术问答>linux和unix
[请教]pe格式,没发错地方,pe是引子。花生瓜子大杏仁叻,不买的大爷也请看看。
来源: 互联网 发布时间:2016-12-30
本文导语: 本帖最后由 c154387417 于 2011-09-09 01:18:07 编辑 那个,先从pe格式引出话题,以说明实质问题, 诚心请教: 把正常的可执行文件用文本编辑器,比如记事本打开 好吧,很乱很花……耐心,细心…… . . . 会发现有很多...
诚心请教:
把正常的可执行文件用文本编辑器,比如记事本打开
好吧,很乱很花……耐心,细心……
.
.
.
会发现有很多绝对路径字符串,象什么f:coder_kingproject1debug...,
就是编译时所在机器上磁盘路径。
标新立异,创造力able的程序员,
操作系统用户名啊,或者某些文件夹名啊,工程名啊
很多都是全世界也找不出第二个的,
如果是写马的同学,这上面容易翻车。
我想问的是,这些字符串怎么去掉,
编译器(或者在连接器?)应该有相关的选项吧?
比如gcc。
生成调试信息选为否,可以把这种东东减到最少,比如说路径就不存在于可执行文件中了,不过字符串常量还是在的。gcc不知道,没试过,个人觉得不用 -g 选项就可以了,,
然后再加个强壳,就看不到了。。。
顺带说下,字符串常量一般是在.text段中的
如果LZ还有很深的疑问,建议你去看雪问问
|
看这个就懂PE了
http://msdn.microsoft.com/en-us/magazine/cc301805.aspx
你贴的那些路径是PDB文件路径信息,想去掉的话,在链接的时候选择不产生调试信息应该就行了
http://msdn.microsoft.com/en-us/magazine/cc301805.aspx
你贴的那些路径是PDB文件路径信息,想去掉的话,在链接的时候选择不产生调试信息应该就行了
|
正确的说来应该是在编译器放到汇编代码或o(bj)目标文件中的,然后链接器再放到可执行文件中去的
|
我是认真看完了楼主的问题,我的疑问和楼主一样,但是楼上的解释不能让你信服!
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。