查看: 102|回复: 1

[Reverse] 西湖论剑预选赛_2019 _Reverse_Testre

[复制链接]

6

主题

13

帖子

3

精华

中级会员

Rank: 8Rank: 8

学币
18
荣耀
0
rank
620
违规
0
发表于 2020-7-21 17:33:47 | 显示全部楼层 |阅读模式
本帖最后由 Abuei 于 2020-7-21 20:00 编辑

题目链接:https://www.xuenixiang.com/ctfexercise-competition-124.html
首先科普什么是base58
Base58的码表:123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ
9位数字以及去掉了英文字母容易造成混淆的字母(0:数字零,O:大写O,I:大写i,l:小写L)所组成
编码流程:
①   将所要编码的字符串转为ASCII码(ASCII码实际上也就是256进制的数)
例如将”ABD”转为 65 66 68
②   然后再将256进制转为10进制数,65*256*256+66*256+68=4276804
③   最后将十进制数转为58进制,即模58转化,最后得到21 53 20 0
④   根据21 53 20 0查表中所对应的字符得到base58编码的密文:nVm1
解码流程与其编码流程相反
总结,编码就是将所要加密的字符先转256进制,再转10进制再转为58进制,最后查码表;解码就是查码表得到58进制,再转10进制最后再转256进制最后通过ascii码表转为字符。

首先查壳,发现没有加壳

西湖论剑预选赛_2019 _Reverse_Testre

 西湖论剑预选赛_2019 _Reverse_Testre
拖入到IDA静态分析,来到主函数

西湖论剑预选赛_2019 _Reverse_Testre

 西湖论剑预选赛_2019 _Reverse_Testre
经过分析,第一个箭头所指向的函数内容大致意思是输入字符串
来到第二个箭头所指向的函数

西湖论剑预选赛_2019 _Reverse_Testre

 西湖论剑预选赛_2019 _Reverse_Testre


根据意思,s应该是经过某种加密操作后的字符串,后面的D9 cS9N 等等应该就是密文了,密文应该是D9cS9N9iHjMLTdA8YSMRMp(仔细看s后面加了数字,如s+2),通过分析可以知道s被v11所赋值的,所以主要看v11,这里的过程还被加入了其他变量的操作来混淆,主要看有关v11的加密操作过程即可

西湖论剑预选赛_2019 _Reverse_Testre

 西湖论剑预选赛_2019 _Reverse_Testre
(这里引用别人的图)


根据上面base58的原理,所以这里的算法为base58的加密过程
将字符串D9cS9N9iHjMLTdA8YSMRMp进行解密即可
得到flag{base58_is_boring}


西湖论剑预选赛_2019 _Reverse_Testre

 西湖论剑预选赛_2019 _Reverse_Testre

虚心求教,对于静态分析的过程也不是很明白,毕竟加了好多混淆的代码。



温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的最好奖励,还可以获得学币奖励,请尊重作者的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
学逆向论坛-免费的逆向学习论坛

0

主题

2

帖子

0

精华

零级会员

Rank: 1

学币
-1
荣耀
0
rank
10
违规
1

    发表于 7 天前 | 显示全部楼层
    "AcAA2AAHAAdAA3AAIAAeAA4AAJAAfAA5AAKAAgAA6AALAAhAA7AAMAAiAA8AANAAjAA9AAOAAkAAPAAlAAQAAmAARAAoAASAApAATAAqAAUAArAAVAAtAAWAAuAAXAAvAAYAAwAAZAAxAAyA\n4\376\367\377\177"
    学逆向论坛-免费的逆向学习论坛
    微信公众号
    快速回复 返回顶部 返回列表