免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 系统安全 > 汇编加密重定位免杀DLL文件

汇编加密重定位免杀DLL文件

时间:2011-12-13 18:13来源:未知 整理:寂涯网络 点击:

今天讨论的是免杀重点在于PE里文件里的重定位部分,我们在免杀PE文件时基本面对
的文件格式无非有两种:EXE 文件和 DLL文件,如果采取定位特征码的免杀方法会发现有将
近一半的特征码定位在带有重定位部分的代码上。对于EXE 文件来说这是可以忽略的,因此
我们通常可以把EXE文件的重定位部分直接删除掉(当然大部分EXE文件本身也不带有重定
位),所以今天我们主要针对的是DLL文件的重定位部分。
DLL 文件比较特殊,每次载入内存的基址都不大相同,所以为了使代码能够正常运行就
必须带上重定位,因此这也是杀软特别感觉兴趣的位置。修改一段含有重定位的代码是比较
麻烦的,不仅要考虑代码还要考虑重定位表的修改,一旦忽略某个细节就会导致程序不正常
或是部分功能损失。何况如果一个文件中含大量的包含重定位的特征码,那我们修改起来是
一件非常头疼和费时费力的事。于是就有了今天的课题,我们能不能在定位前先处理下重定
位这块的信息呢?如果成功的话不仅直接免杀了一部分特征码而且还改变了 PE 文件的其它
一些特征码,使我们再后期做免杀时达到事半功倍的效果。答案是肯定的,今天带来的方法

是直接把一个文件的重定位部分全部加密,加密成功后直接从 PE 文件信息里把重定位表清
除掉,当然程序启动的时候首先运行我们的解密程序恢复重定位。这样一来就达到了我们的
用意,而且这种方法针对类似 NOD32这样的杀软可以说是秒杀。因为NOD32通常都是定位在
函数调用代码上,而DLL文件里的函数调用肯定也都是带有重定位的代码。
下面把完整的代码贴出来并附上相关的说明:  
 
pushad                           ; 保护现场
call    10018020                  ; 重定位
popeax                           ; 获取现在的地址
sub     eax, 11111111              ; 获得基址差做重定位 11111111=pop的地址
push    eax                       ; 将基址差压进栈 重定位用
mov     eax, 22222222             ; 22222222=一个空白地址,这个地址必须可写可
读,并且不会被再次修改
add     eax, dword ptr [esp]         ; 重定位
cmp     dword ptr [eax], 1          ; 对比 如果22222222上的数值是1的话就跳
过解密
je      short 1001809F             ; 跳过解密
mov     dword ptr [eax], 1          ; 没解密过就标志解密
mov     edx, 33333333             ; 33333333=文件内存基址,在 lordpe 里面显示

add     edx, dword ptr [esp]         ; 重定位
push    edx                      ; 压进栈准备下面代码调用
mov     ebp, 44444444            ; 44444444=重定位表的内存地址
add     ebp, dword ptr [esp+4]       ; 重定位
push    dword ptr [ebp]             ; 将重定位表第一页的地址压进栈
add     ebp, 4                     ; 指向本页大小
xor     eax, eax                   ; 清零 eax  
xor     ecx, ecx                   ; 清零 ecx

本页地址 http://www.jybase.net/xitonganquan/20111213714.html

百度搜索更多

谷歌搜索更多

顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com