2023羊城杯CSGO
0x00 分析
这题是go语言(是没见过的语言)
用了IDA8.3(かみ さま),标志什么的好像都有,所以就稀里糊涂地做了
有空一定要专门出一篇GO语言的逆向
然后这题还有反调试(也是第一次见上这个的)
不过还是SharpOD技高一筹
0x01 解
查壳省略(not packed)
上IDA直接搜字符串
可能是go语言的特性(?),字符串并没有直接出现在函数内,而是经过了一个转换
因为这个特性不是很好找密文、加密方法
不过还是试一试
上一下findcrypt
看来有个base64
跟出去发现在main函数中
这个runtime_intstring比较可疑,进去看看
这个v就是base64的表,看来可能是一个换表base64
但是具体怎么换的不太清楚
再回到main函数看看
这个base64换表下面有个equal,猜测是进行对比
然后下面有个main__stmp_3
看来确实是,那么密文呢?
有一说一这个地方蛮麻烦的,不知道是不是go语言的原因
要去到汇编才能看到
这个就是密文了
cPQebAcRp+n+ZeP+YePEWfP7bej4YefCYd/7cuP7WfcPb/URYeMRbesObi/=
看起来就是个base64换表
所以去动调看看表
记录一下位置
开IDA发现运行不起来
查了一下有个这个
看来是加了个反调试,普通的调试不太行
上x64dbg了
下个断运行一下
看来不是一次就出表
那就运行到整个表出来
得到表是
LMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJK
写脚本咯
1 | import base64 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 The Blog of WoaW04!