首页
社区
课程
招聘
[旧帖] [原创]Window下基于C/C++源码免杀理论及思路(新手篇) 0.00雪花
发表于: 2011-5-22 21:49 9920

[旧帖] [原创]Window下基于C/C++源码免杀理论及思路(新手篇) 0.00雪花

2011-5-22 21:49
9920

作者:冷锋(LengF) –[BHST]
博客:www.81sec.com      时间:2011-5-22
0x00 概述
    最近搞一个国外的网站,对方是用的赛门铁克的诺顿杀毒软件,而内网又只对外开放了80端口,于是就想着传个端口转发或者端口复用的工具上去,可是一上传就没了。既然已经提权了,又不想轻易放弃这台服务器。于是就想着怎么办了。自己对非源码的免杀不熟悉,于是就想到自己手头有类似于LCX的工具c源码。对此,翻了以前学习源码免杀的笔记进行了一些总结。很少看到有朋友总结这方面的资料,我就以自己的一些经验总结一些关于源码免杀的一些技巧和方法,在文中我会以一些简单的例子来表达我的思路。为此,我分享我的经验的同时,也希望大家分享自己的免杀思路,毕竟一个人的力量有限,文章中难免有些错误,还望指出。
0x01 基于源码免杀原理
在学习源码免杀原理你要了解下PE结构,懂得如何去分析一个PE的各个部分。我们在源码免杀过程中可能涉及到下面一些情况:
[1]文件头的免杀(这种情况比较少,国外杀软杀的比较比较多);
[2]代码区的免杀(最常见);
[3]字符串的免杀(也很常见);
[4]输入表和输出表的免杀;
[5]版权信息的免杀;
[6]等待你的补充……
在测试免杀的过程中我们经常会用到一些工具,比如:
MyCCL…………..用于定位特征码,应用各种类型特征码定位
C32ASM…………16进制查看和字符串查找,字符串免杀和
Ollydbg…………..反汇编动态调试工具,代码区的免杀
LoadPE…………..查看PE结构信息,段区地址/输入表地址/输出表地址等查询
做好了工具准备,我们以一个测试的VC6.0编译出来为例来描述PE的各种结构,先给出代码:

#include "stdio.h"
void PrintMsg()
{
  printf("Hello!LengF.\n");
}

int main()
{
  PrintMsg();
  getchar();
  return 0;  
}
Void NOPCode()    // 花指令代码
{
  __asm
  {  // 我以NOP为例,NOP的个数随便,不过建议不要太多
    NOP
    NOP
    NOP
}
}
#include <windows.h>
#include <stdio.h>
void PrintMsg()
{
  MessageBox(NULL,”Hello!LengF”,NULL,MB_OK);
}

int main()
{
  PrintMsg();
  return 0;  
}
  char StrMsg[]={'H','e','l','l','o','!','L','e','n','g','F','\0'};
  MessageBox(NULL,StrMsg,NULL,MB_OK);
char StrMsg[]="FgneL!olleH";
  MessageBox(NULL,strrev(StrMsg),NULL,MB_OK);
typedef int (WINAPI *MessageBoxAT)
(
  HWND hWnd,
  LPCSTR lpText,
  LPCSTR lpCaption,
  UINT uType
);

void PrintMsg()
{
  char StrMsg[]="FgneL!olleH";
  MessageBoxAT pMessageBoxA= (MessageBoxAT)GetProcAddress(LoadLibrary("user32.dll"),"MessageBoxA");
  pMessageBoxA(NULL,strrev(StrMsg),NULL,MB_OK);
}
#pragma comment( linker, "/subsystem:windows /entry:mainCRTStartup" )

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (34)
雪    币: 248
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
好文章,支持!
谢谢分享……学习!
2011-5-22 22:18
0
雪    币: 177
活跃值: (141)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主说了不少,加几个
1:API替换如MoveFile和rename
2:C++ LINKER 默认和mini size生成的代码差别也很大
3:功能模块化后LIB引用,方便免杀定位和修改
2011-5-22 22:22
0
雪    币: 239
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
好货~~~~
2011-5-22 23:06
0
雪    币: 45
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
谢谢你的分享,学习了。实践下看看效果。。。又多了一个思路
2011-5-23 03:18
0
雪    币: 113
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
有import的函数,为什么没有.idata节。
2011-5-23 16:18
0
雪    币: 1149
活跃值: (888)
能力值: ( LV13,RANK:260 )
在线值:
发帖
回帖
粉丝
7
好东西,一直对这个很好奇,有时候 :比如 调用send ()函数,getprocadress 后,他不会简单的去调用地址,
而是将地址 -3 地址上面一般是nop  进行调用,现在才知道 他是 为了什么....
谢谢扫盲....
2011-5-23 16:37
0
雪    币: 76
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好文啊,补充一下
[6]资源节免杀
2011-5-28 06:58
0
雪    币: 76
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
有时候感觉Myccl和C32Asm定位不准确,所以常常采用注释源代码的方式定位特征值
2011-5-28 07:01
0
雪    币: 5334
活跃值: (3724)
能力值: ( LV13,RANK:283 )
在线值:
发帖
回帖
粉丝
10
多谢分享!!!
2011-5-28 22:15
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cbb
11
适合新手!顶啊!
2012-6-14 22:58
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
学习了 很不错哇
2012-6-15 14:36
0
雪    币: 66
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
真心不错
2012-6-15 15:58
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
真心不错。。支持你了!!!
2012-6-16 20:10
0
雪    币: 329
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
学习了,下下来研究研究
2012-6-16 22:30
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
好文章,谢谢楼主分享,慢慢研究。。。
2012-6-16 23:26
0
雪    币: 63
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
分享了呀了
2012-6-17 08:44
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
谢谢分享,一直对免杀比较感兴趣
2012-6-17 11:14
0
雪    币: 138
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
多谢分享!!!
2012-6-17 13:59
0
雪    币: 33
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
U^X
20
楼主无私,非常感谢 !
2013-4-1 14:29
0
雪    币: 396
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
顶顶顶顶顶顶顶顶
先留个记号
2013-4-7 22:48
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
妙文,好好研究一下!过去看过一些视频,总感觉高深了!
2013-4-8 11:21
0
雪    币: 704
活跃值: (657)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
23
对于新手确实有指路的作用。希望开个专题什么的~
2013-11-7 20:41
0
雪    币: 61
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
谢谢分享
2013-11-7 21:29
0
雪    币: 252
活跃值: (271)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
好文章,支持!
2013-11-9 04:21
0
游客
登录 | 注册 方可回帖
返回
//