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取函数地址