1修改入口点
入口点一般随着不同编译器"类型和版本"的不同而不同.
可与其它方法配合扰乱顺序
注意:PE头中入口点地址与虚拟地址的关系.
工具:PEditor
2VMProtect
参见第11章第12章
3Overlay附加数据
参考资料:
不会被映射到内存的数据(因为非区段)保留在磁盘上.
有些程序会用Overlay存储配置数据,或者利用它的结束位置指针反向偏移读取来检查自身的完整性.
4驱动程序免杀修改技巧
参见第14章驱动编写与编译
知识点:SEH
结构化异常处理,处理程序错误或异常的错误。
百度一大堆文章(暴露了偶只会用百度的水平)
"结构化异常处理(StructuredExceptionHandling,SEH)是Windows操作系统处理程序错误或异常的技术。SEH是Windows操作系统的一种系统机制,与特定的程序设计语言无关。外壳程序里大量地使用了SEH,如果不了解SEH,将会使你跟踪十分困难。"--摘自http://lwglucky.blog.51cto.com
a常用方法
对于保护程序作者的建议是:
VMProtect加密
用OEM混淆工具PEArmor,当然用加密壳Themide也是可以的。还有很多新的加密壳
b手工思路
1需要修复校验和
2尽量不要改变sys文件大小
3上一条可以违背。
5免杀补丁
其他方面:漏洞补丁,破解补丁
作者举例补丁软件:diablo2oo2's Unversal Patcher(通过对先后文件的对比,来生成一个自动修改目标到指定状态的程序)
6PE文件进阶
1PE结构和字段具体含义参见第八章
DOS MZ header
DOS stub
PE header(默认224Byte)
区段表(区段)Section table
区段Section
输(道)入表完成动态链接工作,详见7.5节
2虚拟内存
32位对应4GB内存虚拟空间,寻址空间所限
是Ring3概念
中间虚拟内存管理器
物理内存是R0的概念
区别于硬盘虚拟内存
3PE文件的内存映射
File Offset
文件偏移地址
Image Base
装载基址:
exe文件一般0x00400000
dll文件一般0x10000000
虚拟内存地址
Virtual Address
相对虚拟地址:
Relative Virtual Address
在没有计算Image Base的相对内存地址.
VA=RVA+Image Base
PE区段单位:
0x200字节
加载到内存后区段单位:
0x1000为单位存放.不足补"00".
通过相对关系和绝对关系轻松推出文件偏移地址.
7网页木马的免杀
1脚本木马(入侵服务器用)
A针对传统杀软:
a加密免杀
例如对于ASP木马,微软的screnc工具.
b特征码免杀
例如内部版权,特性名.
针对性免杀
webshell特征码定位器
宽泛性免杀
改变变量名,插入空对象.
其他方法
i与数据库合并
致使杀软使用数据库特征扫描导致误判.
ii移位逆位
一般用escape和unescape函数实现
B针对专杀工具的免杀
a利用Windows目录漏洞
建立windows无法访问的畸形目录(..\)
例如b调用别的文件躲过专杀
copy命令与图片合并
C自己编写加密算法
1分隔符加密算法
ASP中split或者replace函数
2ASCII转换加密算法
2网页挂马的免杀
A使用Html混淆器
B蓝星网页加解密专家等
C网页挂马压缩器
网马暂时只能学个皮毛,因为缺乏相关经验.