buuctf-新年快乐
本帖最后由 lanceyeunng 于 2024-11-13 21:41 编辑UPX 加壳过程:备份导入地址表、重定位信息、创建新的 OEP(入口点)
UPX 脱壳过程:找到加壳前的原始入口点OPE,dump存储,恢复IAT(导入地址表),修复重定位信息..混合保存出来
查找Flag流程:DIE查看壳信息-->X64DBG脱壳-->IDA查找Flag
----------------------------------------------------------------------
可以得知,UPX加密且32位系统
打开DBG【pushad意味着32位进程upx壳解压缩代码的入口,64位是多个push】点击运行或者F9/fn+F9,直到汇编代码出现pushad
检查是否符合堆栈平衡定律(esp定律),在pushad下一个的点的esp内存位置添加断点,继续运行程序
发现目标:【壳代码中的 JMP 点 - 跳转到 原始的OEP】但是可以发现左侧的箭头无法继续往下,选择步过或者运行目标位置
选中jmp位置打开自带插件(Scylla)进行脱壳恢复数据,得到脱壳后的文件
在ida中找到main函数,f5进行伪代码可以得知str2就是flag即flag{HappyNewYear!}
感谢分享,复现成功. 感谢分享, 感谢分享 新年快乐 感谢分享,很有用 新年快乐 每次看到这种脱壳的事脑袋都下意识的变大...其实先用upx做了也就没什么坎了
感谢分享,很有用 新年快乐