一、Debug 和 Release 编译方式的区别:

Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。


Debug 和 Release编译方式在木马制作方面的应用是:调试完成以后,使用Release模式编译,这样生成的木马体积可以减小很多

二、编译器选项:

#pragma主要包含一些预处理命令,比如共享内存,修改内存属性等等//自定义对齐方式
#pragma comment(linker, "/FILEALIGN:16")
#pragma comment(linker, "/ALIGN:16")//定义最小节的大小,数值越小程序体积越小
//http://msdn.microsoft.com/zh-cn/wf5kss02.aspx通过这个编译器选项能够去掉代码中由于对齐而产生的多余代码这两个必须同时使用,否则编译出来的程序不能运行使用了这个编译器选项之后一般不能再对文件加壳

#pragma comment(linker, "/OPT:REF")
#pragma comment(linker, "/OPT:ICF")
#pragma comment(linker, "/OPT:NOWIN98") // 使用老VC编绎器的512大小为一节

//自定义加载的库
#pragma comment(lib,"kernel32.lib")//表示链接kernel32_32.lib这个库
#pragma comment(lib,"shell32.lib")
#pragma comment(lib,"msvcrt.lib") //使用VC6.0动态链接库

//自定义函数入口
#pragma comment(linker, "/ENTRY:EntryPoint")
//更改默认的入口函数,之后就要用ExitProcess(0);才能正常退出;//设置子系统类型
#pragma comment(linker,"/subsystem:windows") //这样双击运行程序的时候就不会出现cmd窗口了
http://blog.csdn.net/lostangels/archive/2008/01/06/2027642.aspx// 优化选项
#pragma comment(linker, "/opt:nowin98")
//http://support.microsoft.com/kb/235956/zh-cn
#pragma comment(linker, "/opt:ref")
#pragma comment (linker, "/OPT:ICF")// 合并区段
#pragma comment(linker, "/MERGE:.rdata=.data")//把rdata区段合并到data区段里
#pragma comment(linker, "/MERGE:.text=.data")//把text区段合并到data区段里
#pragma comment(linker, "/MERGE:.reloc=.data")//把reloc区段合并到data区段里//设置区段属性
#pragma comment(linker, "/section:.data,RWE")
在LodePe里看到的就是E0000040,其中RWE是可读、可写、可执行的意思
R:readable
W:Writable
E:executable#pragma optimize("gsy", on)
http://msdn.microsoft.com/zh-cn/library/chh3fb0k(en-us).aspx#pragma code_seg("PAGE")    //其中PAGE是区段的名称
//这个是免杀中最有用的一个编译器选项,它可以把cpp文件里的代码放到一个单独的区段里,这样在对付杀毒软件的代码查杀的时候,给我们带来了非常大的方便#pragma comment(linker,"/entry:mainCRTStartup")
//设置入口函数为main

三、过nod32启发的代码:

这个代码主要用于对付nod32的启发查杀,对普通特征码查杀无效

总结:

●让木马体积变小的方法有以下几点:

①用Release模式编译

②自定义程序入口

③合并区段

④自定义最小节的大小

●编译器选项在代码免杀中的应用:

①区段合并让代码发生非常大的改变

②代码单独存放在一个区段里

③通过其他改变从而使代码发生变化

转载于:https://www.cnblogs.com/-qing-/p/10815143.html

vc++源码免杀特殊技巧相关推荐

  1. 286合购网VC++源码免杀

    286合购网VC++源码免杀 下载地址 https://pan.baidu.com/s/15qZCkizDDaK1Mq61a4T35g 创业资料/视频资料/安全相关 扫码下面二维码关注公众号回复 10 ...

  2. 详谈 vc++源码免杀全套思路方法

    首先说中国国内杀毒软件的特征 . 1  金山毒霸 ,我个人觉得杀的代码部分和字符串还是比较普遍的 .输入表函数 我个人不多见 . 2  瑞星 ,经实战经验 ,瑞星杀毒软件是垃圾. 过掉金山 也就过瑞星 ...

  3. 源码免杀处理的技巧与tips

    2019独角兽企业重金招聘Python工程师标准>>> 首先,要了解编译中MAP的利用:     第一步设置VC编译环境生成Map文件. 在 VC 中,点击菜单"Proje ...

  4. 远控软件GHOST源码免杀

    <script type="text/javascript"></script> 远控软件gh0st源码免杀 远控软件gh0st3.6开源了,开源意味着我们 ...

  5. 远控软件gh0st源码免杀之我谈

    远控软件gh0st3.6开源了,开源意味着我们可以在此基础上进行二次开发,同时也意味着杀软可以较容易的查杀该款远控木马,既然要利用,我们就做好源码基础上的木马免杀工作. 好久没有来博客了,我把免杀这部 ...

  6. 现在主流免杀是源码免杀

    一.文件特征码定位:  一般我们先用MyCCL把被查杀文件的文件特征码定位出来,然后用C32判断定位出来的这个特征码是代码还  是字符串,或者是输入表.输出表.版权信息等-定位在不同的地方,就要用不同 ...

  7. c语言免杀程序源码,Window下基于C/C++源码免杀理论及思路(新手篇)

    作者:冷锋(LengF) [BHST] 博客:www.81sec.com      时间:2011-5-22 0x00 概述 最近搞一个国外的网站,对方是用的赛门铁克的诺顿杀毒软件,而内网又只对外开放 ...

  8. 源码免杀--反调试代码,免杀爱好者必备的利剑

    源码免杀只处理特征码还是不够的,必须要加入反调试代码,这样才能更持久更耐用.这里就发几个暗夜经常用的反调试代码给大家. 1. HKEY ck; char strreg[] = {'S','O','F' ...

  9. 源码免杀-过启发式的思路

    定位免杀NOD32的一些经验 ----collect dying site:http://www.idying.cn 欢迎大家一起讨论 先说下定位方法: 1 NOD32不能正向定位的,定位出来也是不能 ...

最新文章

  1. flex 字体加载方式4
  2. 只要你一句话,马斯克就得留扫把头,项目已开源丨Adobe等出品
  3. 2021第六届数维杯大学生数学建模竞赛赛题_B 中小城市地铁运营与建设优化设计
  4. μC/OS Ⅱ之任务就绪表的操作_2012.5.31
  5. python语言的优缺点论文_Python语言的优缺点是什么呢?
  6. heroku_将应用程序集成为Heroku附加组件
  7. jclouds的命令行界面
  8. 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(四)
  9. ELF应用程序二进制接口
  10. 【转】凡是能拉进与妹子距离的产品都是好产品
  11. 计算机照片文件大小,怎么把照片文件大于30k
  12. 2021-01-26
  13. aws linux使用ssh登陆_aws 创建新用户并使用 ssh 登录
  14. linux硬盘对拷 再生龙,使用Clonezilla(再生龙)克隆Linux系统
  15. 深海油气开发利器——水下机器人
  16. Linux 下检测是否插入U盘
  17. 笔迹宽度估计的低质量文本图像二值化(Robust Document Image Binarization Technique for Degraded Document Images)
  18. 计算机会计内容是什么,会计电算化包括什么内容
  19. substr函数功能
  20. 安装node.js(‘npm‘ 不是内部或外部命令,也不是可运行的程序)

热门文章

  1. Python ImportError: No module named Image
  2. QTP的那些事 -– Visual Relation Identifier Feature: How to use in the real world
  3. LINUX 下通过lsof恢复被误删除的文件
  4. 512抗击震灾捐款背后的思考
  5. 用户体验是非常难琢磨的东西
  6. oracle 删除已备份归档,通过RMAN联机全库备份,包括控制文件,归档日志文件,备份成功后,删除已备份的归档日志。...
  7. ios 隔空投安装ipa_iOS 安装自己服务器上的IPA包
  8. json pandas 内存溢出_pandas中的常用函数
  9. ITester软件测试小栈,点击领取你的能量值!
  10. 测试环境搭建:CentOS7环境装JDK+Nginx+Redis+MySql