上周自己打造的添加用户的shellcode太长,不过当时主要目的是为了锻炼手动asm,熟悉一些复杂的参数类型如何手动进行构造,然后通过堆栈传递. 接下来就打造一个弹计算器的shellcode来进行接下来的学习和测试. 弹计算器的C代码只有一句: C代码: system(“calc”); ASM代码: 004030B4 8BEC mov ebp, esp //把栈底抬高,准备放参数 004030B6 33FF xor edi, edi //把edi清零,准备0,这样可以防止代码中出现00,避免字符…