Abuei 发表于 2020-7-21 17:33:47

西湖论剑预选赛_2019 _Reverse_Testre

本帖最后由 Abuei 于 2020-7-21 20:00 编辑

题目链接:https://www.xuenixiang.com/ctfexercise-competition-124.html
首先科普什么是base58Base58的码表:123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ9位数字以及去掉了英文字母容易造成混淆的字母(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码表转为字符。
首先查壳,发现没有加壳拖入到IDA静态分析,来到主函数
经过分析,第一个箭头所指向的函数内容大致意思是输入字符串来到第二个箭头所指向的函数

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


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



base58解码链接:https://www.jisuan.mobi/pbHzbBHbzHB6uSJx.html虚心求教,对于静态分析的过程也不是很明白,毕竟加了好多混淆的代码。



rootkit 发表于 2020-7-28 11:27:06

"AcAA2AAHAAdAA3AAIAAeAA4AAJAAfAA5AAKAAgAA6AALAAhAA7AAMAAiAA8AANAAjAA9AAOAAkAAPAAlAAQAAmAARAAoAASAApAATAAqAAUAArAAVAAtAAWAAuAAXAAvAAYAAwAAZAAxAAyA\n4\376\367\377\177"

molin 发表于 2022-8-7 20:16:45

AcAA2AAHAAdAA3AAIAAeAA4AAJAAfAA5AAKAAgAA6AALAAhAA7AAMAAiAA8AANAAjAA9AAOAAkAAPAAlAAQAAmAARAAoAASAApAATAAqAAUAArAAVAAtAAWAAuAAXAAvAAYAAwAAZAAxAAyA\n4\376\367\377\177

iotseczero 发表于 2024-1-16 10:37:36

好多混淆的代码
页: [1]
查看完整版本: 西湖论剑预选赛_2019 _Reverse_Testre