手脱upx练习生
程序来源是[SWPUCTF 2022 新生赛]upx,程序小,方便练习两年半
程序检测,虽然有upx脱壳工具,这里主打一个练习生
加壳都知道,代码都加密了,工具反汇编不出来的
首先还是固定一下基地址,方便调试
程序运行,会让我们输入数据
扔到xdbg,程序正在调用打印字符的系统函数
我们反其道而行
点击这个执行到返回
点击两次后,发现这里有大距离的跳转
这里有很大的可能就是oep入口
先在这里下个断点
然后继续点击执行到返回
,发现已经到了高地址了
到这里就可以往下执行了,执行到了程序入口
再次执行到断点
这里选择跟进
算了,不装了,摊牌了,这里就是oep入口
刚刚下断点地址,到这个函数是一个大跳转
而且继续更进函数,没有等到什么大的跳转,程序需要打印的字符已经出来了
然后重新运行程序
等rip运行到 oep -> 00000001400014E0 时
点击scylla
先点击IAT自动搜索,然后是获取导入
把这个有红xx的节点删除了
先转储,然后再修复转储一下
把转储的文件往ida里一扔,函数代码都识别出来了
同时转储出来的文件也能够正常运行
好了,联系了两年半,要去唱跳rap了