逆向工程频繁互锁增量/减量

时间:2012-04-22 20:02:09

标签: visual-c++ reverse-engineering interlocked

我试图对一些代码进行逆向工程并多次遇到一种常见的模式,但我不确定它是什么。该代码是使用VC ++ 2010编译的,并使用一些外部CLR组件进行显示(但据我所知,不是针对任何内部组件)。

我看到的一些模式在某些函数中返回一个对象是:

  • 在返回InterlockedIncrement之前obj_ptr - 12执行InterlockedDecrement
  • 检查obj_ptr - 12*(*(obj_ptr - 24) + 64)(obj_ptr - 24)的结果,如果结果为0,请致电{{1}}

它看起来像一些基于引用计数的GC,急切地调用析构函数。任何人都可以确认这是否正确,还是其他系统?

如果那是对的 - 我能看到一些已知的界面吗?我想知道我是否可以在返回之前假设这些地方正在进行增量计算,可以假设它是某些扩展版本的新版本'对于那种类型。

另外,我在哪里可以找到更多相关信息?看起来这不能成为标准对象vtable的一部分,我希望它在前面是一个短指针。也许是RTTI ...但我找不到其布局的任何好例子。我不希望这里有任何多重继承,这将进一步推动基类。

0 个答案:

没有答案