虚函数逆向分析

文章目的是为了处理因为虚函数导致IDA的F5溯源函数较为麻烦的问题

比如这样:

​ 如果是单个的只有一个虚函数,是不会有虚函数表的,IDA分析也会很容易

​ 但是如果有多个虚函数,就会存在虚函数表,往往第一次调用虚函数的时候会调用一个函数来得到虚函数表的首地址

​ 虚函数的继承就更加的复杂,但是如果存在多个class,他们的虚函数表是分别独立的,虚函数定义的顺序和表中的顺序一致

虚函数的继承

​ 但是虚函数本来就是为了避免继承冲突才产生的。这样多个继承的class会给逆向分析造成极大的困难。

​ 分析入手的话,一般是存在v[1] () 这样的代码,首先确认v是哪个虚函数表,然后找对应的函数。

​ 目前自己没有想到好一点的脚本处理方法,还是只有根据经验确认虚函数然后交叉引用找对应的函数,希望以后有能力来补上这个坑吧。