网络安全:动态恢复与异或加密

样例:htran.exe(端口转发工具),网上有开源的代码,自行编译

杀软:nod32

   nod32这个杀软的特点是喜欢杀字符串。

正向定位结果:

 

文件名:E:\test\htran.exe

------------------------------------------------

特征码物理地址/物理长度如下:

[特征] 00009320_00000002     00409320       2E:0D 0A005B2B  OR EAX,2B5B000A 

[特征] 0000934A_00000002     0040934B      2E:0D 0A00005B  OR EAX,5B00000A    

[特征] 00009418_00000002    00409418        2E:0D 0A005B2B  OR EAX,2B5B000A   

 

.data :数据段储存为全局变量或静态数据,在应用程序初始化的时候该段的全部变量归0,有全局静态数据静态数据常量保存。

.rdata 保存函数指针或是间接调用的虚拟函数指针或虚拟表对象/类指针等,不同的编译器可能对该段有所处理不同吧。

偏移地址: C32载入可见,是PE文件储存在硬盘上时的一个内部的绝对地址)

RVA地址:PE文件各数据导入内存镜像后相对于基地址的偏移量)

VA地址 PE文件各数据导入内存镜像后虚拟地址,OD载入可见)

基地址  PE文件导入内存镜像时的初始地址,EXE缺省值为00010000hDLL00400000h

其中  VA地址=RVA地址+基地址

 

Microsoft Visual C++ 6.0 ,变量字符串等数据 就是存放在.data区段里面,可以修改

现在,我们来填充它,验证我们找的地方是否正确。

注意:我们填充的时候,从下至上.

***************************************************************************

源码免杀:

Accept a Client on port %d from

Waiting for Client on port:%d  

Make a Connection to %s:%d   

这里就能轻松的过了nod32了。

源码免杀最笨最有效的方法--注释法,就是紧盯着main函数执行顺序,注释干扰项,逐步排查就行了。

***************************************************************************

.exe免杀:

OR   EAX,5B00000A

XOR  EAX,5B00000A

OR   将源操作数中的全部二进制1放进目的操作数中,目的操作数中二进制1只可能增加;

XOR  对目的操作数按位取反。根据不同的源操作数可以实现清0、取反、无损加密等。

or   :

0   0   =   0

0   1   =   1

1   0   =   1

1   1   =   1

xor:

0   0   =   0

0   1   =   1

1   0   =   1

1   1   =   0

因为这里是个字符串类型的,这里用这个等价指令是可以的

为了安全,我们可以采用动态恢复等方法

原起始入口点:  00402913 >/$  55            PUSH EBP

添加区段:  50

PE文件存放最小空间是0x200的整数

加载到内存的时候以0x1000为单位

***************************************************************************

动态恢复:

    全部填充00,然后动态恢复成2E,我们的特征码在.data区段,是可写的。

push eax

inc  eax

pop  eax

mov byte ptr [00409320],2E

mov byte ptr [0040934B],2E

mov byte ptr [00409418],2E

jmp 00402913

    新入口点:  0040E002    50              PUSH EAX

    我们可以看到杀软在模拟执行我们的程序,内存杀毒,很狡猾噢,不过现在它查杀的是我们的动态恢复代码,我的花指令过于简单,大家可以在网上找或者自己写一个很生僻的花指令就行了。

 

文件名:E:\test\htran_动态恢复.exe

------------------------------------------------

特征码物理地址/物理长度如下:

[特征] 0000D00A_00000002        0040E00A

[特征] 0000D018_00000002        0040E018

 

注意:此方法不适合输入表免杀.

***************************************************************************

异或加密:

 

   pushad                //把所有寄存器压入堆栈

   mov ebx,0040F2E4      // 特征码的内存地址0040F2E4传送到ebx 寄存器

   mov ecx,3             //循环次数就是加密的长度(可以多次循环达到整块加密,别忘了次数这是16进制,3就代表加密12个字符)

   mov eax,dword ptr [ebx]  //ebx所存放的内存地方传送给eax

   xor eax,11111111        //进行异或加密必须8个字符

   mov dword ptr [ebx],eax  //把加密后的内容传送给ebx

   add ebx,4               //ebx 的内存地址增加了4个字节

   loopd  short xxxxxxxx   //跳转到 mov eax ,dword ptr [ebx] 这个就是循环刚才上面有个循环次数,ecx=3就表示循环3

   popad                  //把所有寄存器取出堆栈

   jmp 原入口点          ///跳转到原入口点  

 

    用于资源加密啊,.rsrc (这个没资源,我们来给它加些资源),在远控的时候,经常杀上线信息,就是一些配置信息,我们随便给它加一个

 

   记下加密资源的起始地址  0000E2E4   0040F2E4    ,记得修改rsrc区段可写喔

 

   异或加密后的新入口点 0040e00c,执行加密后保存可执行文件,这样我们资源就免杀了.

 

   再次执行后就自动解密了 ,这就是利用异或的特点,执行两次,自动解密。

转载于:https://www.cnblogs.com/Gemgin/archive/2013/06/13/3136218.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
『软件说明』 —————————————————— 软件名称:ZoomIt v4.0.0.0 软件类别:微软放大镜 运行环境:Win2003, WinXp, Win2000, Win9x 授权方式:免费 软件介绍: ZoomIt(主页|介绍)是一款非常实用的投影演示辅助工具。它源自Sysinternals公司,后来此公司被微软收购,因此,有些网友也称 ZoomIt为微软放大镜。ZoomIt只有一个exe文件(0.5MB)、完全免费、易于使用。通过快捷键可以很方便地调用ZoomIt三项功能: 屏幕放大、屏幕注释、定时提醒。 附:软件更新情况 ZoomIt v4(2009-08-05):   修复bug;改善 Vista 和 Windows 7 下实时放大(live zoom)的性能。 ZoomIt v3.01:   增加 LiveZoom 模式,适用于Windows Vista 及更高版本;可自定义打字、计时字体(仍不支持中文);放大后的屏幕可以Ctrl+C复制到剪贴板。 ZoomIt v2.2 更新内容:   1、屏幕绘图时如果光标过小,则显示为十字形,以便看清   2、输入文字时可以用鼠标移动插入文字的位置 ZoomIt v2.11版更新内容:   1、可以改变倒计时文字的颜色   2、改变了截屏方式,可以包含工具提示 『汉化说明』 ———————————————————————— 此程序是由Borland Delphi 2.0 +Microsoft Visual Studio C++6.0编写,本人对Delphi不熟悉,所以点击托盘出现的英文没有汉化, 汉化不是很完美,但绝对满足你的使用,请大家多多包涵。 Gemgin 现在是一名软件工程师,收入来源用于自身疾病治疗,十分需要您的支持,如果您想支持 Gemgin 的话,请捐助 Gemgin 吧! 捐助地址: 暂时为空。 『Gemgin 说明』 ———————————————————————— 此汉化由Gemgin制作。原程序版权归其制作人所有,本汉化版权归Gemgin所有。 Gemgin汉化软件纯粹是为方便国人,没有任何商业目的。使用此汉化给您造成的任何损失,请自行承担! 此汉化可任意下载、拷贝、传播,但Gemgin不承担因此而产生的所有可能的责任。 若传播、拷贝、转发请保正原汉化包的完整,请不要删改任何文件。 未经本人允许,请勿将此汉化用于商业用途和一切与“钱”有关的任何行为,因此而产生的所有不良后果与Gemgin无关,由使用者自行承担责任。 本人水平有限,难免会有错误,如有发现,希望能够通知我一声,多谢。 『关于 Gemgin』 ———————————————————— QQ:308463776 E-mail: Gemgin@live.cn BLOG: http://hexun.com/ctfysj By Gemgin 2009.09/17 广东◎深圳

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值