当前位置:编程学习 > VC++ >>

我的武器就是小---如何使文件编译的更小(VC 环境)

在这里我们主要讨论的是在VC下进行编译的结果.我们在进行渗透的时候当然希望自己的武器小巧

玲珑而又好用,武器小了带着也方便啊~~~~而且上传或下载起来也快,总之一句话:文件小了,好处多多!:)

我们这次编译的目标是一个简单的telnet服务端文件,绑定端口90.

我们主要用到的技巧有:

一,使用release版而不用debug版编译

使用debug版编译会生成许多垃圾信息.我们先使用默认的设置进行一下编译.可以看到编译后

生成的文件有152k之巨.使用release版编译具体方法是:在"build(编译)--->Configuration(配置)"中

将"Win32debug"移去,然后再次编译可以发现文件已经小了很多,才24k.但离我们的目标还很远呢.

二,设置自己的入口点函数

C或C 程序默认的入口函数是main()或WinMain(),但我们现在不用什么Main,WinMain.因为这些都不

是直接的入口点,编译器咱产生exe文件的时候,将为我们生成真正的入口点.下面我们来定义自己的入口函

数,具体是把main或WinMain改成其它的名字(如MyFun),打开"Project(工程)--->settings(设置)"选项,选

中"link"选项卡,在"Category(分类)"下拉列表中选"output",在"Entry-Pointsymbol(输入项-点符

号)"中输入我们刚才定义的入口函数(MyFun),在源程序中也要做相应修改,然后在编译.现在是16k了:)

三,更改编译对齐方式

通常VC在编译的时候,采用的对齐方式是0x1000,即4096bytes,我们现在将他改成0x200,即512bytes.

在刚才打开的"link"选项卡,在下面的"Projectoptions(工程选项)"中添加:/align:512(还可以将512设

置的更小如16,32.....).注重两个参数之间有个空格.3k了^_^用32试试1.84k好~~~用161.79k天哪!

再把程序的数据段和代码段放在一起,添加:/merge.data=.text/merge:.rdata=.text1.76kgoon!

另外,假如要是用到MFC函数的程序,可在"Project(工程)--->settings(设置)"里面的"通用

(General)"选项卡中在"MicrosoftFoundationClasses"中选择使用一个MFC的dll(UseMFCinaShare

Dll)也会使文件大小缩小很多.

现在我们的超小后门编译好了,试下能用否.ok没问题哦

大家注重到程序运行时会产生一个cmd窗口,要让他没有就好了.这也好办.

回到VC 中,在"Project(工程)--->settings(设置)"选项,选中"link"选项卡,在下面的"Project

options(工程选项)"有/subsystem:console选项,表示程序是控制台程序,双击运行是会有一个cmd窗口,

把console改为windows就没有窗口了.:)看演示运行一下没有窗口哦但有进程连接一下试试

ok没问题这样我们的超小1.76ktelnet小后门就成功了不被查杀哦^_^

这回我们并没有用任何加壳,压缩软件就达到了目的.大家还可以很据情况使用加壳压缩软件哦~~~

补充:软件开发 , Vc ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,