逆向题目中,有一些题目会调用一些加密或者编码算法,如果自己一行一行去读,又耗时又耗力。最近在读《从0到1 CTFer成长之路》这本书,这本书中归纳了部分逆向题目中常见的算法特征。如果能找到这些算法特征,那么判断算法就能秒解了。

本博客不定期慢更

特征值识别

在一些算法中,往往不可避免要用到部分常数。如果一个用来加密或者编码的函数中调用了下面的这些常数,那么很有可能这个函数就调用了对应的算法。

https://i.loli.net/2021/01/19/BgZerq1FUSLtv2K.jpg

BgZerq1FUSLtv2K

自己去找这些特征常数有的时候也不是很方便,所以用ida的FindCrypt插件能够自动寻找这些特征常数。

特征运算识别

当特征值不足以识别算法的时候,可以看看部分特殊的标志性运算。下面这个表归纳了部分算法的代表性运算步骤。

https://i.loli.net/2021/01/19/gvFMQ24UzHs1Cuo.jpg

gvFMQ24UzHs1Cuo