免杀技术-基础知识

简介:

 去年年底的一段时间,工作较清闲,当时对免杀做过一段时间研究。当时用的是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

相关文章
|
4月前
|
SQL 安全 算法
爆赞!终于有大佬把网络安全零基础入门教程给讲明白了!
网络安全的一个通用定义指网络信息系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的破坏、更改、泄露,系统能连续、可靠、正常地运行,服务不中断。网络安全简单的说是在网络环境下能够识别和消除不安全因素的能力。 网络安全在不同环境和应用中有不同的解释,例如系统运行的安全、系统信息内容的安全、信息通信与传播的安全等。 网络安全的主体是保护网络上的数据和通信的安全,数据安全性是指软硬件保护措施,用来阻止对数据进行非授权的泄漏、转移、修改和破坏等,通信安全性是通信保护措施,要求在通信中采用保密安全性、传输安全性、辐射安全性等措施。
|
1月前
|
运维 安全 Linux
服务器基础知识大科普
服务器基础知识大科普
45 0
|
1月前
|
安全 API 数据安全/隐私保护
史上最全最完整,最详细,软件保护技术-程序脱壳篇-逆向工程学习记录(一)
史上最全最完整,最详细,软件保护技术-程序脱壳篇-逆向工程学习记(一)
26 0
|
1月前
|
存储 监控 API
史上最全最完整,最详细,软件保护技术-程序脱壳篇-逆向工程学习记录(二)
史上最全最完整,最详细,软件保护技术-程序脱壳篇-逆向工程学习记录(二)
52 0
|
5月前
|
NoSQL Linux Shell
技术笔记:linux系统开发基础
技术笔记:linux系统开发基础
37 0
|
6月前
|
安全 API 数据安全/隐私保护
免杀开发基础(1)
本文是关于Windows恶意软件开发的技术介绍,主要包括动态函数加载和执行、Shellcode执行技术以及注入技术。动态函数加载避免了静态链接到特定库,增加了分析难度。Shellcode执行涉及通过指针、内存分配和回调函数等方式。注入技术如APC注入,包括枚举进程线程、分配内存、写入有效负载等步骤。此外,文章还提到了使用异或加密来隐藏Shellcode,以规避静态特征检测。总的来说,文章探讨了免杀技术的基础知识,强调了在恶意软件开发中灵活性和创意的重要性。
|
6月前
|
自然语言处理 算法 前端开发
【软件设计师备考 专题 】编译、解释系统的基础知识和基本工作原理
【软件设计师备考 专题 】编译、解释系统的基础知识和基本工作原理
96 1
|
6月前
|
安全 编译器 网络安全
【软件设计师备考 专题 】配置计算机系统及其环境的基础知识
【软件设计师备考 专题 】配置计算机系统及其环境的基础知识
113 0
|
Android开发 Windows
Android逆向 | 基础知识篇 - 02 - 关于Android签名
Android逆向 | 基础知识篇 - 02 - 关于Android签名
|
缓存 算法 安全
Android逆向 | 基础知识篇 - 01
Android逆向 | 基础知识篇 - 01
237 0
下一篇
无影云桌面