not only smc

hahaquan92 2025-03-15 21:42:35 95 0


参考链接:https://blog.csdn.net/weixin_45055269/article/details/114576865,写的比较简略

1.拖进来检查PE,发现UPX壳

2.尝试脱壳发现无法运行

3.带壳分析,输入flag后在VirtualAllocated下断

执行返回到主程序的位置,大概是要对flag进行处理

4.单步下走,利用flag[:8:5]进行异或恢复代码,进call该函数

需要预判flag的5个字节,由于异或完是个函数,假设开头5个字节为

55 push ebp
8BEC mov ebp,esp
83EC XXsub esp,XX

因此重新异或获得flag的5个字节,tmp数组为为恢复前的函数前5个字节

5.该函数内部花指令混淆,但代码较少,通过在进入该函数前flag参数地址下硬件访问断点,确定只有一个异或

,使用日志输出异或flag的字节数组

同时在该函数里也可以确定flag的长度

6.执行完该函数继续在flag地址下断

又到了一个异或的地方,打印日志

结合异或的执行频次为1(0) -> 2(0 1) -> 4(0 1 2 3) -> 8(0 1 2 3 4 5 6 7) -> 16(...)

大概确定一组换位异或的形式

一共有65组循环

7.出了换位异或函数,继续单步向下,注意出现引用flag地址的地方

直接进行比较,然后输出right、wrong,然后退出

8.根据以上信息,ans数组先倒序的换位异或,再异或一开始的key

分类:Reverse
image
作者:hahaquan92

1

提交

0

收入

相关WriteUP

  • 2018网鼎杯3-babyre

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • Reverse
    • 3年前
  • EasyXor

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • Reverse
    • 1年前
  • EasyReverse

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • Reverse
    • 1年前
  • [NUAACTF-2017] [Reverse]robots解法

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • Reverse
    • 1年前
  • 2018-网鼎杯-advance

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • Reverse
    • 1年前
问题反馈