简单脱壳1

程序1

PEiD载入程序
在这里插入图片描述
实际上该程序的壳为 CrypKeySDK
载入od查看
在这里插入图片描述程序一进去的路口点不是常见的push ebp
点击上面窗口的 M查看内存
在这里插入图片描述其中出现出现**have a nice day!**字段
同时首代码的地址为46B6DE对照内存中为输入表中
判断有壳
继续调试
程序jmp到一串代码处代码开头为 55 8B E3为vc经典开头
选择右键分析—分析代码
在这里插入图片描述继续判断是否到达OEP
观察起始地址2471B0对应内存中的代码段
推测应该到达OEP
右键选择Dump该程序
在这里插入图片描述命名程序后再使用PEiD进行查看
在这里插入图片描述
得到源程序的编译程序
再用od载入脱壳后程序
在这里插入图片描述载入后直接进入OEP
先将内存中的 have a nice day! 删除
使用LoadPE载入脱壳的程序
在这里插入图片描述将其地址于od中内存显示的对比
然后修改区段
在这里插入图片描述右键选中区段然后删除
保存修改
再次载入od点击内存
在这里插入图片描述
成功修改

程序2

载入PEiD
在这里插入图片描述可以看出有一个EZIP的壳
运行程序
在这里插入图片描述
载入od
在这里插入图片描述观察到存在很多jmp跳转
查看内存
在这里插入图片描述同时发现有两段text rdata 和 data
开始调试程序
在这里插入图片描述jmp后来到一段类似OEP的段
观察到地址依然在伪造的代码段
判断此处不是OEP
接下来利用堆栈平衡的原理

堆栈平衡 推荐此贴:https://www.52pojie.cn/thread-394116-1-1.html
简单概括一下就是壳的可以当作一个加密函数,函数就会调用栈,根据栈的先进后出,返回到OEP的地址一定会push进去,在该命令下一条push处下断点,就可以在后面清空栈准备返回时停下,而此时下一步就是跳转向OEP

继续调试观察寄存器ESP的值
在这里插入图片描述此处ESP的值发生变化
在右侧右键选择数据窗口跟随
在这里插入图片描述下方出现数据所在位置
在该位置下硬件断点
在这里插入图片描述
运行程序
在这里插入图片描述在此处停下,而下一步跳转就为OEP地址
在这里插入图片描述对应内存得到OEP地址
右键dump保存
在LordPE中打开
在这里插入图片描述在这里插入图片描述
同时与od中内存对比
更改数据部分
在这里插入图片描述载入od修改成功

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值