免杀技术-基础知识

简介:

 去年年底的一段时间,工作较清闲,当时对免杀做过一段时间研究。当时用的是hacksky的免杀教程。不敢说对免杀技术已经入门,但是当时做了一些学习笔记和学习感悟。hacksky的教程还是很不错的,因为工作的原因,当时没有全部看完,接下来有时间的话会把教程看完。这个大类以后主要记录关于免杀技术方面的文章。

文东免杀工具包下载地址 http://down.51cto.com/data/873053

PE头地址+PE大小 +20  代码段的大小
00401004       B8 00014000                mov eax,服务端程.00400100                         
00401009       05 E0000000                add eax,0E0
0040100E       83C0 20                    add eax,20
00401011       8B00                       mov eax,dword ptr ds:[eax]
00401013       05 00004000                add eax,服务端程.00400000      

二进制:B8 00 01 40 00 05 E0 00 00 00 83 C0 20 8B 00 05 00 00 40 00
------------------------------------------淫荡的分割线---------------------------------
PE头地址+PE大小 +24  代码段的起始位置
00401004       B8 00014000                mov eax,服务端程.00400100                           
00401009       05 E0000000                add eax,0E0
0040100E       83C0 24                    add eax,24
00401011       8B00                       mov eax,dword ptr ds:[eax]
00401013       05 00004000                add eax,服务端程.00400000      
二进制: B8 00 01 40 00 05 E0 00 00 00 83 C0 24 8B 00 05 00 00 40 00
------------------------------------------淫荡的分割线---------------------------------
RVA + 映像基址 ====在OD中地址 
------------------------------------------淫荡的分割线---------------------------------

判断字符串长度

004A1ED4BE 8C304A00mov esi,004A308C

004A1ED98BFEmov edi,esi

004A1EDBAEscas byte ptres:[edi]

004A1EDC^ 75 FDjnz 004A1EDB

004A1EDE2BFEsub edi,esi

004A1EE04Fdec edi
二进制:BF 94 30 4A 00 8B F7 AE 75 FD 2B FE 4F

004A1E48 >BF 94304A00mov edi,004A3094

004A1E4D83E1 00and ecx,0

004A1E50F7D1not ecx

004A1E52F2:AErepne scas byte ptres:[edi]

004A1E54F7D1not ecx

004A1E5649dec ecx


004A1E48 >
33C9xor ecx,ecx

004A1E4AF7D1not ecx

004A1E4CBF 94304A00movedi,Server.004A3094

004A1E51F2:AErepne scas byte ptres:[edi]

004A1E53F7D1not ecx

004A1E5549dec ecx

二进制:33 C9 F7 D1 BF94 30 4A 00 F2 AE F7 D1 49

-----------------------------------淫荡的分割线----------------------------------------

 

标记位确定
004A1E56BB 00104000mov ebx,Server.00401000             更改指向

004A1E5B813B 52554E45cmp dword ptrds:[ebx],454E5552      内存数值与标志位比较

004A1E6174 03je shortServer.004A1E66              跳转第二个循环

004A1E6343inc ebx                                

004A1E64^ EB F5jmp shortServer.004A1E5B             继续比较 

004A1E66817B 04 78654D65cmp dword ptrds:[ebx+4],654D6578    验证标志位

004A1E6D74 03je short Server.004A1E72             跳出

004A1E6F43inc ebx

004A1E70^ EB E9jmp shortServer.004A1E5B

二进制:BB 00 10 40 00 81 3B 52 55 4E 45 74 03 43 EB F5 81 7B 04 78 65 4D 65 7403 43 EB E9
-------------------------------淫荡的分割线--------------------------------------------

自定位
0040C14F       E8 00000000               call 服务端程.0040C154                 压栈
0040C154       58                        pop eax                                 弹栈
0040C155       83E8 05                   sub eax,5                               定位起始位 
0040C158       83C0 16                   add eax,16                              
0040C15B       FFE0                      jmp eax

二进制:E8 00 00 00 00 58 83 E8 05 83 C0 16 FF E0
-------------------------------淫荡的分割线--------------------------------------------
自动查找映像基址
原理:利用的是代码段的自定位技术进行MZ定位

004A1E48 S>  E8 00000000                    call Server.004A1E4D
004A1E4D     5B                             pop ebx
004A1E4E     81E3 00F0FFFF                  and ebx,FFFFF000
004A1E54     66:813B 4D5A                   cmp word ptr ds:[ebx],5A4D
004A1E59     74 08                          je short Server.004A1E63
004A1E5B     81EB 00100000                  sub ebx,1000
004A1E61   ^ EB F1                          jmp short Server.004A1E54

二进制:E8 00 00 00 005B 81 E3 00 F0 FF FF 66 81 3B 4D 5A 74 08 81 EB 00 10 00 00 EB F1

 

 

 

 


------------------------------------------淫荡的分割线---------------------------------

二进制计算除法

004142B9B9 90A80200movecx, 0x2A890;ecx代表大小

004142BE33C0xoreax, eax

004142C033D2xoredx, edx

004142C233DBxorebx, ebx

004142C451push ecx

004142C566:8B0424movax, word ptr [esp]

004142C966:BB 0200movbx, 0x2

004142CD66:F7F3divbx

004142D050pusheax

004142D166:8B4424 06movax, word ptr [esp+0x6]

004142D666:F7F3divbx

004142D9C1E0 10shleax, 0x10

004142DC030424addeax, dword ptr [esp]

004142DF8BC8movecx, eax

004142E158popeax

004142E258popeax

 

二进制:B9 90 A8 02 00 33C0 33 D2 33 DB 51 66 8B 04 24 66 BB 02 00 66 F7 F3 50 66 8B 44 24 06 66 F7 F3 

C1 E0 10 03 04 248B C8 58 58

本文转自文东会博客51CTO博客,原文链接http://blog.51cto.com/hackerwang/1251286如需转载请自行联系原作者


谢文东666

相关文章
|
7月前
|
安全 Java 数据安全/隐私保护
代码混淆技术探究与工具选择
代码混淆技术探究与工具选择
78 0
|
2月前
|
运维 安全 Linux
服务器基础知识大科普
服务器基础知识大科普
79 0
|
6月前
|
监控 安全 虚拟化
深入浅出Python沙箱越狱:原理、方法与防范
今天我们来聊一个有趣的话题 - Python沙箱越狱。在我们开始之前,先来搞清楚什么是Python沙箱吧。 简单来,Python沙箱就像是一个虚拟的"游乐场"。在这个游乐场里,你可以尽情地玩耍(运行Python代码),但是不能伤害到外面的世界(不能访问系统资源或执行危险操作)。这个"游乐场"有围栏(限制),有规则(安全策略),目的就是让你玩得开心,又不会搞出什么大乱子。
|
7月前
|
安全 API 数据安全/隐私保护
免杀开发基础(1)
本文是关于Windows恶意软件开发的技术介绍,主要包括动态函数加载和执行、Shellcode执行技术以及注入技术。动态函数加载避免了静态链接到特定库,增加了分析难度。Shellcode执行涉及通过指针、内存分配和回调函数等方式。注入技术如APC注入,包括枚举进程线程、分配内存、写入有效负载等步骤。此外,文章还提到了使用异或加密来隐藏Shellcode,以规避静态特征检测。总的来说,文章探讨了免杀技术的基础知识,强调了在恶意软件开发中灵活性和创意的重要性。
|
Android开发 Windows
Android逆向 | 基础知识篇 - 02 - 关于Android签名
Android逆向 | 基础知识篇 - 02 - 关于Android签名
102 0
|
缓存 算法 安全
Android逆向 | 基础知识篇 - 01
Android逆向 | 基础知识篇 - 01
244 0
|
安全 网络安全 数据安全/隐私保护
【网络安全】学过编程就是黑客?
【网络安全】学过编程就是黑客?
115 0
|
Java 数据库 Python
浅浅的学习一下汇编技术入门基础知识,隔壁家的小孩都学哭了。
我们的计算机知识就像一座金字塔,底层是数学,上面是数字电路,然后是汇编,再往上是操作系统、网络,数据库、高级编程语言、框架等等…我们不可能精通这个金子塔的每一层, 但是想走的更远就必须要了解这个金字塔的底层。因此,学习汇编并不是为了用汇编在应用层设计程序,而是为了深刻理解机器运行程序的机理。就像对于人来说不能没有常识一样,尽管常识不能直接挣钱吃饭,但它影响谈吐,影响你的判断力和决断力,决定着你接受新事物和新知识的程度。汇编就是计算机语言里面的常识和基础。
浅浅的学习一下汇编技术入门基础知识,隔壁家的小孩都学哭了。
|
安全 数据库 数据安全/隐私保护
|
安全 网络安全 Windows
[病毒分析]WinDBG实战教学(1)(三)
[病毒分析]WinDBG实战教学(1)
210 0
[病毒分析]WinDBG实战教学(1)(三)

热门文章

最新文章