首页
社区
课程
招聘
[原创]2019redhat Reverse部分writeup
发表于: 2019-11-13 00:34 8951

[原创]2019redhat Reverse部分writeup

2019-11-13 00:34
8951

周末打了一下红帽杯,Reverse比较简单,简略写下writeup,好久没发帖子了,水一水

程序首先校验前四个字符是否在"qwertyuiopasdfghjklzxcvbnm1234567890"这个字符集

之后进行xxtea加密,密钥为前四个字符,明文为输入的19个字符+0x00000013,密文为6*32bits,24个字符

接下来是一个一一映射的关系,改变密文顺序,最后是一个比较简单的异或算法,结果与常量进行比较

直接还原出xxtea密文,爆破密钥,复杂度为36**4

flag{CXXand++tea}

main函数解出了一个提示还有彩蛋

根据提示最后发现了

尝试解一下

flag{Act1ve_Defen5e_Test}

前面是一个一一映射关系,改变输入字符串顺序,先不管

之后对输入字符串反修饰C++ 符号名

限定输入长度为31,输出长度为62,之后是一个简单的比较算法

先还原出c++函数名

得到原函数名

private: char __thiscall R0Pxx::My_Aut0_PWN(unsigned char )

根据c++规范手撸修饰后的符号,得到

?My_Aut0_PWN@R0Pxx@@AAEPADPAE@Z

前面说过有一个一一映射的关系,懒得逆了,输入

1234567890abcdefghijklmnopqrstu

得到输出

fg8hi94jk0lma52nobpqc6rsdtue731

直接将结果映射回去得到真正的输入,md5得到flag

flag{63b148e750fed3a33419168ac58083f5}

这道题是赛后才搞出来的,cpp、stl太恶心(还是太菜了

主要都是动态调试调出来的,程序逻辑大概就是输入三个整数然后计算

上面这一段是校验 输入的三个整数 x、y、z 中 x<z && y<x

接下来就是 加、减、乘、幂运算了,连蒙带猜理清了一些逻辑关系

这一部分计算了 (x+y)**3 - 3x\y*y - 3*x*x*y

下面还有一部分计算了 (z+4)**3 - 12*(z**2) - z*48 - 22

最终校验两部分是否相等

化简可以得到一个丢番图方程

x**3+y**3-z**3 == 42

参考f48K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6W2L8W2)9J5k6i4N6A6K9$3W2H3k6h3c8A6j5g2)9J5k6h3!0J5k6#2)9J5c8Y4N6A6K9$3W2Q4x3V1k6e0N6h3#2K6i4K6g2X3L8$3k6Q4y4h3k6@1K9s2u0W2k6g2)9#2k6X3y4#2j5X3g2K6

得到结果


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

最后于 2019-11-13 11:52 被丿feng编辑 ,原因:
上传的附件:
收藏
免费 2
支持
分享
最新回复 (7)
雪    币: 3182
活跃值: (13671)
能力值: ( LV12,RANK:322 )
在线值:
发帖
回帖
粉丝
2
厉害
最后于 2019-11-13 08:50 被一半人生编辑 ,原因:
2019-11-13 08:48
0
雪    币: 3907
活跃值: (5922)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
3
给个样本呢大佬
2019-11-13 11:32
0
雪    币: 7941
活跃值: (1831)
能力值: ( LV12,RANK:256 )
在线值:
发帖
回帖
粉丝
4
roysue 给个样本呢大佬
我给忘了,已添加在附件了
2019-11-13 11:53
0
雪    币: 3907
活跃值: (5922)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
5
丿feng 我给忘了,已添加在附件了
多谢大佬~
2019-11-13 13:15
0
雪    币: 270
活跃值: (1662)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
6
多谢分享,想问下大佬ChildRe那个函数是怎样判断是映射关系的,求指导,我在那个函数那里卡得挺久的
最后于 2019-11-14 00:05 被Vinadiak编辑 ,原因:
2019-11-13 22:04
0
雪    币: 7941
活跃值: (1831)
能力值: ( LV12,RANK:256 )
在线值:
发帖
回帖
粉丝
7
Vinadiak 多谢分享,想问下大佬ChildRe那个函数是怎样判断是映射关系的,求指导,我在那个函数那里卡得挺久的
动态调一下就可以发现只改变了字符的顺序
2019-11-14 00:14
0
雪    币: 279
活跃值: (196)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
Vinadiak 多谢分享,想问下大佬ChildRe那个函数是怎样判断是映射关系的,求指导,我在那个函数那里卡得挺久的
用x64dbg动态调试,在16CD地址处下断,观察寄存器窗口即可发现只有字符位置偏移上的变化
2019-12-16 09:03
0
游客
登录 | 注册 方可回帖
返回