首页
社区
课程
招聘
[原创]网鼎杯2020 伪虚拟机逆向 wp
发表于: 2020-5-10 18:26 7415

[原创]网鼎杯2020 伪虚拟机逆向 wp

2020-5-10 18:26
7415

解题速度太慢了,导致下午开始肝ta的时候,分数不过200了。


终端程序,无壳,gcc编译:


复制完vmtable之后进入调度算法:


说是伪虚拟机,因为这个明显是仿照vm的意思自己完成switch小demo,没有寄存器也没啥调度算法:


table:

int table[] = { 0x0A, 4, 0x10, 3, 5, 1, 4, 0x20, 8, 5, 3, 1, 3, 2, 0x8, 0x0B, 1, 0x0C, 8, 4, 4, 1, 5, 3, 8, 3, 0x21, 1, 0x0B, 8, 0x0B, 1, 4, 9, 8, 3, 0x20, 1, 2, 0x51, 8, 4, 0x24, 1, 0x0C, 8, 0x0B, 1, 5, 2, 8, 2, 0x25, 1, 2, 0x36, 8, 4, 0x41, 1, 2, 0x20, 8, 5, 1, 1, 5, 3, 8, 2, 0x25, 1, 4, 9, 8, 3,

0x20, 1, 2, 0x41,

8, 0x0C, 1, 7,

0x22, 7, 0x3F, 7,

0x34, 7, 0x32, 7,

0x72, 7, 0x33, 7,

0x18, 7, 0xA7, 0xFF, 0xFF, 0xFF, 7,

0x31, 7, 0xF1, 0xFF, 0xFF,

0xFF, 7, 0x28, 7, 0x84, 0xFF,

0xFF, 0xFF, 7, 0xC1, 0xFF, 0xFF, 0xFF, 7,

0x1E, 7, 0x7A };



[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 1
支持
分享
最新回复 (14)
雪    币: 218
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
大佬流弊
2020-5-10 19:06
0
雪    币: 578
活跃值: (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分享  学习了
2020-5-10 19:09
0
雪    币: 2157
活跃值: (12639)
能力值: ( LV12,RANK:312 )
在线值:
发帖
回帖
粉丝
4

这道题目做的时候正好有笔记,借楼发一下给别人一些参考
01 flag切换到下一位byte
02 加法(指定数据),后面取一个
03 减法(指定数据)
04 异或
05 乘法
08 运算后flag[byte]替换
0B 减法 -= 1
0C 加法 += 1
07 对比flag


具体逻辑如下:

flag[1] = (flag[1] ^ 0x20) * 0x3
04 00 00 00 20 00 00 00 08 00 00 00 05 00 00 00 03 00 00 00  01 00 00 00
flag[2] = (flag[2] - 0x2) - 0x1
03 00 00 00 02 00 00 00 08 00 00 00 0B 00 00 00 01 00 00 00
flag[3] = (flag[3] + 0x1) ^ 0x4
0C 00 00 00 08 00 00 00 04 00 00 00 04 00 00 00 01 00 00 00
flag[4] = (flag[4] * 03) - 0x21
05 00 00 00 03 00 00 00 08 00 00 00 03 00 00 00 21 00 00 00 01 00 00 00
flag[5] = flag[5]-2
0B 00 00 00 08 00 00 00 0B 00 00 00 01 00 00 00

...............................................................

找到规律后,直接脚本撸就出来了,难度中低。

最后于 2020-5-10 19:54 被一半人生编辑 ,原因:
2020-5-10 19:52
2
雪    币: 9934
活跃值: (2554)
能力值: ( LV6,RANK:87 )
在线值:
发帖
回帖
粉丝
5
有做joker吗
2020-5-10 20:29
0
雪    币: 259
活跃值: (283)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
已阅
2020-5-10 21:09
0
雪    币: 425
活跃值: (2886)
能力值: ( LV11,RANK:185 )
在线值:
发帖
回帖
粉丝
8
Lixinist 有做joker吗
https://bbs.pediy.com/thread-259432.htm
2020-5-10 21:29
0
雪    币: 422
活跃值: (2186)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
9
直接放弃了,用angr梭的
2020-5-11 00:36
0
雪    币: 12
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这种原理比较简单的其实可以直接z3跑,就不用分析这么久了
2020-5-11 09:02
0
雪    币: 200
活跃值: (17)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
12
劫局丶 直接放弃了,用angr梭的
我自己写的代码梭。。。看来要好好看看angr怎么用了
2020-5-11 10:38
0
雪    币: 1705
活跃值: (676)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
这是不是叫控制流平坦化?伪虚拟机是不是就是控制流平坦化?我记得控制流平坦化有标准解法
2020-5-11 11:39
0
雪    币: 7833
活跃值: (1571)
能力值: ( LV12,RANK:256 )
在线值:
发帖
回帖
粉丝
14
angr大法好
2020-5-12 21:27
0
雪    币: 21
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15

请问你用哪个版本的od调试器?

2021-7-3 23:10
0
游客
登录 | 注册 方可回帖
返回
//