码迷,mamicode.com
首页 > 其他好文 > 详细

18/09/28-3-BugKu-逆向-easyeasy-200(LCTF)

时间:2018-10-05 10:51:24      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:word   ADG   ctf   提取   view   play   分享图片   编码   tno   

 

0x00
题目链接:https://pan.baidu.com/s/1p684GHsV_FMrBs-is-eO1g 提取码:bdg9

 

0x01

Java层分析

Format类中的form方法截取app中输入字符串的第5位到第38位,然后传入Native层的原生函数,猜测截取的是输入的flag{xxxxx}中的xxxxx。

 

0x02

native层分析

1)

在IDA中查看字符串发现base64的编码表,以及疑似密文的“dHR0dGlldmFodG5vZGllc3VhY2VibGxlaHNhdG5hd2k.”,将最后的"."换成“=”进行base64解密得到“ttttievahtnodiesuacebllehsatnawi”。

2)

在进行base64加密前对传入的xxxxx进行处理,分析是将xxxxx首尾置转(1234变为4321)。

技术分享图片
 1  v20 = __readgsdword(0x14u);
 2   src = (const char *)(*(int (__cdecl **)(int, int, _DWORD))(*(_DWORD *)a1 + 676))(a1, a3, 0);
 3   if ( !src )
 4     return 0;
 5   dest = (char *)operator new[](0x21u);
 6   strcpy(dest, src);
 7   sub_8700((int)&v19, (char *)&unk_236F3);
 8   v5 = strlen(dest) - 1;
 9   if ( v5 )
10   {
11     v6 = 1;
12     do
13     {
14       v7 = dest[v6 - 1];
15       dest[v6 - 1] = dest[v5];
16       dest[v5--] = v7;
17       v8 = v6++ < v5;
18     }
19     while ( v8 );
20   }
View Code

则传入的xxxxx即为“iwantashellbecauseidonthaveitttt”,即可得到flag。

18/09/28-3-BugKu-逆向-easyeasy-200(LCTF)

标签:word   ADG   ctf   提取   view   play   分享图片   编码   tno   

原文地址:https://www.cnblogs.com/Fingerprint/p/9744008.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!