在ActiveX中有哪些是可以内部写函数的功能?(如果有做过AX逆向的也请进来帮下忙)

gfvera 2015-06-07 09:32:41
我现在是在做AX的代码还原,但是对AX缺不熟悉。看了点孙鑫VC上讲的内容。在做还原代码的时候出了几点问题。
除了第一行内容,遇见了以默认工程中定义的“AboutBox”为分界线,在“AboutBox”分界线之上为属性和方法这点我已经知道了。“AboutBox”之下的我却没有找功能。和带有点疑问

疑问:
“AboutBox”之下的是否是定义的“接口”??我不确定这个问题,我自己直接用VC6功能添加的接口全部都是在以“AboutBox”为分界线之上。。先用VC提供的工具添加接口,然后手动复制Ctrl.cpp的“BEGIN_DISPATCH_MAP”确实能修改顺序。但是。。。IDA反汇编出来的字节数据有所差异。。。。。如果自己手动复制“AboutBox”的内容手动添字节的数量也有差异。。。 对于这点差异我在还原中是很不放心的一种状态。。因为怕功能缺失出错。

问题:
除了:接口、事件、方法、属性、之外,还有哪些功能是可以设置出来在OCX内部能编写函数的功能??(VC6工程下)

因为我看IDA在分析接口的格式是

dd offset aAboutbox ; "AboutBox"
db 0D8h ;
db 0FDh ;
db 0FFh
db 0FFh
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
dd offset sub_10001780
align 0x10
dd offset aAboutbox ; "下一个接口"
.....

以上面这种方式排序。但是接口之下还有一种格式


dd offset aMove ; "move"
.rdata:10033BD4 db 0D3h ;
.rdata:10033BD5 db 7
.rdata:10033BD6 db 0
.rdata:10033BD7 db 0
.rdata:10033BD8 dd offset unk_10040220
.rdata:10033BDC db 0Bh
.rdata:10033BDD db 0
.rdata:10033BDE db 0
.rdata:10033BDF db 0
.rdata:10033BE0 dd offset sub_10002EF0
.rdata:10033BE4 align 10h
.rdata:10033BF0 dd offset aMovep ; "movep"
.rdata:10033BF4 db 0D4h ;
.rdata:10033BF5 db 7
.rdata:10033BF6 db 0
.rdata:10033BF7 db 0
.rdata:10033BF8 dd offset dword_10040214
.rdata:10033BFC db 0Bh
.rdata:10033BFD db 0
.rdata:10033BFE db 0
.rdata:10033BFF db 0
.rdata:10033C00 dd offset sub_10002F20
.rdata:10033C04 align 10h

我不清楚上述格式是添加了啥添加出来的。所以提问除了:接口、事件、方法、属性、之外,还有哪些功能是可以设置出来在OCX内部能编写函数的功能??(VC6工程下)
...全文
261 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hbs_biscuit 2015-06-17
  • 打赏
  • 举报
回复
不太了解反编译 ,据我所知 MFC 的 ax 实现方式和ATL 的不同 ,MFC 使用内嵌类的方式实现的 ,ATL 使用模板的方式实现的 。 也就是说 MFC 实现的 AX 不像大多数 COM 资料中讲的采用 虚拟函数 的方式 ,而是采用类似 聚合的方式,而 ATL 是模板集成的方式,所以他生成的AX 是标准的虚拟函数(vtable) 你说的领域不是太了解 ,以上仅供参考

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧