我的武器就是小---如何使文件编译的更小(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 ,