最优化编译设置文库Word格式.docx
- 文档编号:20443462
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:14
- 大小:20.72KB
最优化编译设置文库Word格式.docx
《最优化编译设置文库Word格式.docx》由会员分享,可在线阅读,更多相关《最优化编译设置文库Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
MicrosoftFoundationClasses"
中选择使用一个MFC的dll(UseMFCinaShareDll)也会使文件大小缩小很多.现在我们的超小后门编译好了,试下能用否.ok没问题哦
大家注意到程序运行时会产生一个cmd窗口,要让他没有就好了.这也好办.
回到VC++中,在"
有/subsystem:
console选项,表示程序是控制台程序,双击运行是会有一个cmd窗口,把console改为windows就没有窗口了.:
),运行一下没有窗口哦但有进程连接一下试试
ok没问题这样我们的超小1.76ktelnet小后门就成功了不被查杀哦^_^
//编译器cl.exe(VisualC++6.0)
//没有做任何优化情况下,编译大小为:
16K
//编译优化后:
1K(用16进制编辑器把尾部的0x00去掉:
712bytes)
#include<
windows.h>
#pragmacomment(lib,"
kernel32.lib"
//作用:
指定节对齐为512字节
#pragmacomment(linker,"
512"
合并节
//将.data节和.rdata节合并到.text节(代码节)
/merge:
.data=.text"
.rdata=.text"
指定子系统为windows(和优化无关)
//vc编译器默认是console,会有个黑糊糊的CMD窗口,不好看.用windows就好了
/subsystem:
windows"
指定入口函数
//子系统为windows的默认入口点WinMain和console的默认入口点main,都会引入
/ENTRY:
main"
//intWinMain(HINSTANCEcurrent,HINSTANCEprev,LPSTRcmdline,int
//showcmd)
去掉函数的栈帧代码,纯属吹毛求疵:
-)
//即函数开头的pushebp/movebp,esp和结尾的popebp/retn
__declspec(naked)
voidmain()
{
//调用wmp.这是按套路出牌的方法.
//typedefVOID(__stdcall*fnRunDllW)(HWND,HINSTANCE,LPCWSTR,DWORD);
//((fnRunDllW)GetProcAddress(LoadLibrary("
msdxm.ocx"
),"
RunDllW"
))(0,0,0,0);
//不按套路出牌,不压入RunDllW的函数参数,直接调用.
//GetProcAddress(LoadLibrary("
)();
MessageBox(0,0,0,0);
//注意此时的堆栈是不平衡的.
//但是通过ExitProcess()退出自身,就不用去考虑平衡了.
ExitProcess(0);
}
微软C/C++编译器选项
-优化-
/O1
最小化空间
/Op[-]
改善浮点数一致性
/O2
最大化速度
/Os
优选代码空间
/Oa
假设没有别名
/Ot
优选代码速度
/Ob<
n>
内联展开(默认n=0)
/Ow
假设交叉函数别名
/Od
禁用优化(默认值)
/Ox
最大化选项。
(/Ogityb2/Gs)
/Og
启用全局优化
/Oy[-]
启用框架指针省略
/Oi
启用内部函数
-代码生成-
/G3
为80386进行优化
/GH
启用_pexit函数调用
/G4
为80486进行优化
/GR[-]
启用C++RTTI
/G5
为Pentium进行优化
/GX[-]
启用C++EH(与/EHsc相同)
/G6
为PPro、P-II、P-III进行优化
/EHs
启用C++EH(无SEH异常)
/GB
为混合模型进行优化(默认)
/EHa
启用C++EH(w/SEH异常)
/Gd
__cdecl调用约定
/EHc
外部“C”默认为nothrow
/Gr
__fastcall调用约定
/GT
生成纤维安全TLS访问
/Gz
__stdcall调用约定
/Gm[-]
启用最小重新生成
/GA
为Windows应用程序进行优化
/GL[-]
启用链接时代码生成
/Gf
启用字符串池
/QIfdiv[-]
启用PentiumFDIV修复
/GF
启用只读字符串池
/QI0f[-]
启用Pentium0x0f修复
/Gy
分隔链接器函数
/QIfist[-]
使用FIST而不是ftol()
/GZ
启用堆栈检查(/RTCs)
/RTC1
启用快速检查(/RTCsu)
/Ge
对所有函数强制堆栈检查
/RTCc
转换为较小的类型检查
/Gs[num]
控制堆栈检查调用
/RTCs
堆栈帧运行时检查
/GS
启用安全检查
/RTCu
未初始化的本地用法检查
/Gh
启用_penter函数调用
/clr[:
noAssembly]
为公共语言运行时库编译noAssembly-不产生程序集
-输出文件-
/Fa[file]
命名程序集列表文件
/Fo<
file>
命名对象文件
/FA[sc]
配置程序集列表
/Fp<
命名预编译头文件
/Fd[file]
命名.PDB文件
/Fr[file]
命名源浏览器文件
/Fe<
命名可执行文件
/FR[file]
命名扩展.SBR文件
/Fm[file]
命名映射文件
-预处理器-
/AI<
dir>
添加到程序集搜索路径
/Fx
将插入的代码合并到文件
/FU<
强制使用程序集/模块
/FI<
命名强制包含文件
/C
不抽出注释
/U<
name>
移除预定义宏
/D<
{=|#}<
text>
定义宏
/u
移除所有预定义宏
/E
预处理到stdout
/I<
添加到包含搜索路径
/EP
预处理到stdout,没有#line
/X
忽略“标准位置”
/P
预处理到文件
-语言-
/Zi
启用调试信息
/Zl
忽略.OBJ中的默认库名
/ZI
启用“编辑并继续”调试信息
/Zg
生成函数原型
/Z7
启用旧式调试信息
/Zs
只进行语法检查
/Zd
仅有行号调试信息
/vd{0|1}
禁用/启用vtordisp
/Zp[n]
在n字节边界上包装结构
/vm<
x>
指向成员的指针类型
/Za
禁用扩展(暗指/Op)
/noBool
禁用“bool”关键字
/Ze
启用扩展(默认)
/Zc:
arg1[,arg2]
C++语言一致性,这里的参数可以是:
forScope-对范围规则强制使用标准C++;
wchar_t-wchar_t是本机类型,不是typedef
-杂项-
@<
选项响应文件
/wo<
发出一次警告n
/?
/help
打印此帮助消息
/w<
l>
<
为n设置警告等级1-4
/c
只编译,不链接
/W<
设置警告等级(默认n=1)
/H<
num>
最大外部名称长度
/Wall
启用所有警告
/J
默认char类型是unsigned
/Wp64
启用64位端口定位警告
/nologo
取消显示版权消息
/WX
将警告视为错误
/showIncludes
显示包含文件名
/WL
启用单行诊断
/Tc<
sourcefile>
将文件编译为.c
/Yc[file]
创建.PCH文件
/Tp<
将文件编译为.cpp
/Yd
将调试信息放在每个.OBJ中
/TC
将所有文件编译为.c
/Yl[sym]
为调试库插入.PCH引用
/TP
将所有文件编译为.cpp
/Yu[file]
使用.PCH文件
/V<
string>
设置版本字符串
/YX[file]
自动.PCH
/w
禁用所有警告
/Y-
禁用所有PCH选项
/wd<
禁用警告n
/Zm<
最大内存分配(默认为%)
/we<
将警告n视为错误
-链接-
/MD
与MSVCRT.LIB链接
/MDd
与MSVCRTD.LIB调试库链接
/ML
与LIBC.LIB链接
/MLd
与LIBCD.LIB调试库链接
/MT
与LIBCMT.LIB链接
/MTd
与LIBCMTD.LIB调试库链接
/LD
创建.DLL
/F<
设置堆栈大小
/LDd
创建.DLL调试库
/link
[链接器选项和库]
附录二(更详细信息,可查阅MSDN)
VisualC#.NET编译器选项
-输出文件-
/out:
文件>
输出文件名(默认值:
包含主类的文件或第一个文件的基名称)
/target:
exe
生成控制台可执行文件(默认)(缩写:
/t:
exe)
winexe
生成Windows可执行文件(缩写:
winexe)
library
生成库(缩写:
library)
module
生成能添加到其他程序集的模块(缩写:
module)
/define:
符号列表>
定义条件编译符号(缩写:
/d)
/doc:
要生成的XML文档文件
-输入文件-
/recurse:
通配符>
根据通配符规范,包括当前目录和子目录下的所有文件
/reference:
文件列表>
从指定的程序集文件引用元数据(缩写:
/r)
/addmodule:
将指定的模块链接到此程序集中
-资源-
/win32res:
指定Win32资源文件(.res)
/win32icon:
使用该图标输出
/resource:
资源信息>
嵌入指定的资源(缩写:
/res)
/linkresource:
将指定的资源链接到此程序集中(缩写:
/linkres)
-代码生成-
/debug[+|-]
发出调试信息
/debug:
{full|pdbonly}
指定调试类型(“full”是默认类型,可以将调试程序附加到正在运行的程序)
/optimize[+|-]
启用优化(缩写:
/o)
/incremental[+|-]
启用增量编译(缩写:
/incr)
-错误和警告-
/warnaserror[+|-]
/warn:
设置警告等级(0-4)(缩写:
/w)
/nowarn:
警告列表>
禁用特定的警告消息
-语言-
/checked[+|-]
生成溢出检查
/unsafe[+|-]
允许“不安全”代码
读取响应文件以获得更多选项
/help
显示此用法信息(缩写:
/?
)
取消编译器版权信息
/noconfig
不要自动包含CSC.RSP文件
-高级-
/baseaddress:
地址>
要生成的库的基址
/bugreport:
创建一个“错误报告”文件
/codepage:
指定打开源文件时要使用的代码页
/utf8output
UTF-8编码的输出编译器消息
/main:
类型>
指定包含入口点的类型(忽略所有其他可能的入口点)(缩写:
/m)
/fullpaths
编译器生成完全限定路径
/filealign:
指定用于输出文件节的对齐方式
/nostdlib[+|-]
不引用标准库(mscorlib.dll)
/lib:
指定要在其中搜索引用的附加目录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优化 编译 设置 文库