首页
社区
课程
招聘
被Class搞得很头疼~
发表于: 2006-12-3 20:46 3658

被Class搞得很头疼~

2006-12-3 20:46
3658
我想写一个补丁调用一个游戏的内部函数,在C语言时代来说,这是很简单的,基本压参数直接Call就是了.但面对C++做出来的游戏,一切就复杂多了.一个函数是某个class的成员函数,而class又是个动态的东西.如果直接call它,很明显行不通.
如果去找构造类的那部分代码,然后在补丁中自己构造类.天..那未免太恐怖.谁知道这会发生什么事情,电脑会不会爆炸.

总之被搅得晕头转向,所以说啥玩意只要一沾上class这个东东,问题就复杂啦.弄得我现在只有从零开始,在visualstudio中写一些最简单的class,然后又反汇编,观察它的汇编结构.试图以此找到突破口.明明只为了一个写一个很弱的小补丁而已,却变成深度研究C++内部运作机制这样的尖端课题了.好象国内网上关于这方面的资料很少,我只找到一本逆向书上有简单介绍了一下c++反汇编结构.不知道有没有哪为大哥有这方面的秘籍资料可以分享一下~~

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 200
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我帮你一起求。我也想学点东西。
2006-12-3 20:51
0
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
3
分析C++对象或者是Object Pascl对象.
抓好this对象指针和self对象指针,
C++编译器一般都约定ECX寄存器为this指针在各个对象之间传来传去.
object pascl约定为eax寄存器...

找到了this.self.指针.就可以根据MFC.VCL翻译出各个虚拟表中的函数,并找出具体对象字符串名子,还有父类this和self指针等.
假如不是MFC VCL中的类,是用户自定义的类可以根据对象地址找出它的类名,也可以找出一些方法指针和一些私有成员等..对象具体功能要靠自己分析了.

还有对象的虚方法动态联编成多态运行.这个捏需要重定位父子之间的this指针.因为它们的虚方法表solt位置是相同地.例如call [ecx+4],-->ecx联编成父类this或者是子类this指针.这个需要程序编译完,在运行期才晓得捏.
没什么好说的.
关键定位到this.self上,什么东东都可以引用来了.如果迷失了它就乱了捏...
2006-12-3 20:58
0
雪    币: 191
活跃值: (205)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
4
《Reversing Secrets of Reverse Engineering》里面有几章将面向对象程序的,LZ不妨看看
2006-12-3 22:40
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我说的就是那本书,其实那上面也只是泛泛地讲了一些皮毛.还有很多很多具体的东西需要去慢慢探索.
我看了一下,VC里面,光是call指令就有很多种变化,比如象call xxxxxxxx这是最普通的一种,还有call [eax+xxxx]这是虚函数,其他还有call [edx+xxxx],call[esi+xxxx],call ebp等.每一种call对应c++里面什么样的编码.都需要自己去一点点的试验.

另外vc的寄存器分配也是如此,函数调用时ecx总是存放this.这个很容易看出来,而其他几个寄存器同样肯定也是有特定规律的.但具体规律是什么,分析起来很累.

这些非常细节和具体的东西,对逆向来说实在是太重要.掌握了它们,分析起代码来就要轻松多了.机器编译出来的代码,看起来一大段一大段挺复杂,但其实都是有规律性的东西.绝对不象手工编写的汇编码那样灵活多变,因此只要摸清了它们的规律,一眼就能看出个大概了.我估计这也是高手们绝对不会外传的独门绝活.HOHO~~
2006-12-4 00:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
最初由 qiweixue 发布
分析C++对象或者是Object Pascl对象.
抓好this对象指针和self对象指针,
C++编译器一般都约定ECX寄存器为this指针在各个对象之间传来传去.
object pascl约定为eax寄存器...

........


仔细琢磨了一下,这位大哥说得对,关键就是this,根据这个this去搞清它的类名和父类等等.我一定要call到它~~~~
2006-12-4 00:59
0
游客
登录 | 注册 方可回帖
返回
//