type
status
date
slug
summary
tags
category
icon
password
😀
2022强网杯-easyre思路复现
总结一下以下三位师傅的思路

一.思路总结

1.Ittly师傅

动调IDA ,然后dump子进程

2.PZ师傅

IDA动调 拿异或值手解部分SMC代码 然后dump

3.Fa1lWind师傅

以下有几个困扰点:
  • 子进程无法调试(主进程在调试中)
  • 一共有两个int3,第二个int3又会经过SMC加密回去
  • 里面 for循环,i=3,前两次是调试int3.,最后一次是等待子进程结束
这时候Fa1lWind师傅的思路简直就是曲线救国
  • 让子进程不再结束,在子进程最后一个int3后面加个死循环
  • 将for 循环改为两次,目的是为了只进行两次int3
  • 将第二个int3中的SMC加密改为异或0,这样就相当于没有经过处理

二.思路复现

1.Ittly师傅的思路复现

notion image
我们打开main 函数之后很显然这是个写入操作
notion image
我们发现这是个ELF文件,然后利用pwndbg将子进程的文件导出
notion image
notion image
在main函数中 sub_401F2F这个函数很重要
点开这个函数之后,我们可以发现这应该是ptrace通信
notion image
sub_401BB1和sub_401D78这两个函数分别是SMC加密和解密
很显然我们应该断点到函数sub_401BB1后面
Ittly师傅的思路是利用pwndbg进行断点
notion image
之后找到断点的地址
notion image
之后查看内存的位置,然后dump下载
notion image
报错不用管,之后将内容放到010中
然后将生成的文件用ida打开
notion image
这个函数loc_21F9将是我们要解密的函数
notion image
按c恢复函数之后,然后将这两个int3 nop掉,然后再按p还原函数
notion image
后面看师傅的wp好像是个数织游戏,咱也不懂,看上面师傅们的wp吧

2.PZ师傅的思路复现

pz师傅和lttly师傅的思路有异曲同工之妙
看pz师傅调试的视频没觉得自己有什么,结果自己调试的时候出现了大问题
notion image
调试的时候发现无法往下调了,其实问题就是调试这个没有传入参数
notion image
传入参数123123之后就可以调试了(传入的参数是什么无所谓,只要有参数就行了)
然后我们然后在这里下个断点,为了就是要得出SMC加密的异或值
notion image
之后写个idc脚本
在re3里面跑一下
后面跟前面的思路一样
notion image
notion image

3.Fa1lWind师傅的思路复现(非常妙!)

首先就是改掉
notion image
还有一个就是在第二个int3 后面加上一个死循环,目的是为了让这个子进程一直运行下去
快速寻找第二个int3,写个简单idc脚本
notion image
之后./easyre 2333运行之后,主进程瞬间结束,然而子进程还没有结束
之后打开IDA然后attach re3 之后就可以跳到函数那里,直接dump
 
💡
有关复现上的问题,欢迎您在底部评论区留言,一起交流~
2023CICN初赛-ezbyte复现关于SIMD在逆向中的应用
Loading...
5m10v3
5m10v3
目前主攻方向为Re
Announcement
🎉5m10v3のBlog已经上线啦🎉
-- 感谢各位师傅的支持 ---
👏欢迎师傅们前来交流👏