171224 逆向-EvilExe的Shellcode分析

本文详细介绍了对JarvisOJ-EvilExe中的Shellcode进行分析的过程,包括如何在OD中执行Shellcode,揭示了Shellcode如何动态获取Kernel32.dll并利用LoadLibrary函数加载关键函数,如MessageBox和ExitProcess。分析指出,Shellcode首先遍历PEB_LDR_DATA找到kernel32.dll,然后通过特定函数查找并保存所需函数地址,如LoadLibraryA、ExitProcess和MessageBoxA,最终调用MessageBoxA显示消息并结束进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1625-5 王子昂 总结《2017年12月24日》 【连续第450天总结】
A. JarvisOJ-EvilExe(Shellcode分析)
B.

ShellCode分析

将Shellcode复制到OD随便一段空白处中进行分析
这里写图片描述
注意跳转执行的时候是从第二个字节开始,第一个字节0xEE是没有用的

右击第二个字节,设置EIP进行执行
可以发现它动态获取Kernel32.dll和通过LoadLibrary函数加载MessageBox和ExitPorcess函数

从43DD11开始
TEB(线程环境块)→PEB(进程环境块)→_PEB_LDR_DATA→InInitializetionOrderModuleList
通过双向链表遍历加载的模块,最终取到kernel32.dll的入口,然后进入下一个代码块加载函数

这里写图片描述
最前面几行是初始化,之后push 0xEC0E4E8E这个硬编码,再push edx,即kernel32.dll的入口点,以这两个参数调用43DD2D取函数地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值