自己大概地梳理了一下逻辑,下面再次总结一下:
1. 编写用于攻击的汇编代码shellcode_asm.c,经过c内联汇编,然后编译,在OD中得到汇编对应的十六进制代码,此即为shellcode_sc
2. 按框1可以直接运行出结果
3. 开始对shellcode_sc编码,编写特定的C编码函数,放入main函数中,来对shellcode_sc加密,并将加密后的十六进制字符串写入文件以便提取
4. 编写解密代码(这段代码无法运行,只能编译成功),通过OD查看十六进制代码,然后放如3中得到的加密代码的前面,形成新的shellcode_Sc_encode
解密代码—>VC编译—>OD调试得到其十六进制代码—>放入上述编码后的shellocde代码前面,即现在的shellocde代码总结构为:
5 更新框1中的shellcode_sc,运行,OK