壳实际上是一段可执行代码,而有壳的程序会先执行壳代码在执行其他
例如我们要给一个程序加上一个执行messagebox的壳该如何做,不考虑注入,我们可以在程序的可执行可读可写区段的空白区域添加上我们的代码
下面是我们需要执行的代码
在实验程序中
我们发现在text段中的文件偏移1110处有大量空白,可以作为写壳代码的区域
在我们执行完壳代码后需要返回原本oep,jmp回去
oep属性在nt头的可选头里面我们通过修改这个值来保证我们的壳代码是最先运行
在010里面我们能看到的只有文件偏移
打开lordpe可以计算va
打开pe编辑器 载入exe
在这里面可以查看镜像基址入口点
点击位置计算器,输入文件偏移
就可以获得地址
再把地址用来计算,得到完整的跳转地址,就完成了