2024羊城杯你这主函数保真么
0x00 前言
构造函数当主逻辑,第一次见
0x01 解
无壳,直接拖IDA
搜main可以发现有两个main,一个是_main
还有一个是___main
查引用发现___main
在_main
之前调用
两个函数都没什么东西
_main
___main
不过发现___main
有一个跳转,进去之后可以看到有个函数指针
动调发现这个是从下往上调用的
调试,直到有flag
字样的函数出现,步入,发现调用了读起来像是构造和析构函数的东西,
继续跟进,发现两个test对象
一个个看,test是主逻辑,读字符串并进行长度判断,由此可知flag长度为0x21
再看test2,发现是个ROT13,应该直接调的库,没有魔改
之后继续跟进,发现在___tcf3
内还有东西
这里面是Test2
类的析构函数,而析构函数里面调用了输入在ROT13操作后的结果
之后可以看到一个encrypt
函数
进去发现又是一段加密,用到了一些三角函数,经查询这是DCT变换
之后发现加密的结果丢到了这个变量_encrypted
里面
既然Test2
类的析构函数有搞事情,那么Test
估计也有
这边F5一下可以看到清晰的逻辑
通过查看发现这个in
数组就是上面的_encrypted
里的东西,由此可以知道上面的三角函数应该是加密的最后一步了
这边比较有意思的是check的结果都是dq(double或quadro word,不过都要解析成双精度浮点数)
最后上脚本
1 | import numpy as np |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 The Blog of WoaW04!