插件开发
文章平均质量分 83
本栏讲解Windows下Com插件技术开发。为Windows下互操作提供技术支撑。
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
插件开发
熟练开发PS插件、AI插件、AE插件、CDR插件、3DMax插件和其它各类插件。
展开
-
TortoiseSVN-VisualSVNServer-软件代码文本资源版本控制管理-版本比较及差异文件
Check Out检出获得文件后,检出的文件仍处于SVN版本控制中,与版本库保持关联,比如你可以进行Svn Update或者Svn Commit操作。export 简单导出一个版本的数据,导出的文件脱离SVN版本控制,修改后无进行Update和Commit操作。这样导出的文件夹层次是保留不变的,这样你可以打包上传服务器,然后解压覆盖,不用担心漏传文件,也不用担心会覆盖错文件。需要依次创建Repositories(仓库),Users(用户),Groups(组),Jobs(作业)。然后选择提交,即可上传。原创 2024-07-11 08:00:00 · 588 阅读 · 0 评论 -
ubuntu22.04-cmake-添加动态库-静态库-添加头文件夹所在位置-管理员启动
该命令可以指定目标(exe或者so文件)需要包含的头文件路径,命名为 < target > 的命令必须是由 add_executive ()或 add_library ()之类的命令创建的,并且不能是 ALIAS 目标。命名的必须是由add_executable()或add_library()之类的命令创建的,并且不能是ALIAS目标。目标依赖项的使用要求会影响其自身源的编译。PUBLIC 在public后面的库会被Link到你的target中,并且里面的符号也会被导出,提供给第三方使用。原创 2024-02-18 08:26:48 · 392 阅读 · 0 评论 -
C++-添加Com类-从 ActiveX 控件添加类-从类型库添加类向导
C++开发基于Com库的应用,可以从这里开始,通过Com实现跨应用程序的调用。原创 2024-02-14 16:26:48 · 146 阅读 · 0 评论 -
Qt-tr-多语言支持-QColorDialog-翻译中文文本
请注意,Qt的一些组件可能在不同版本中有不同的翻译上下文,因此确保你使用的与你的Qt库版本相匹配以获得完整和正确的翻译内容。原创 2024-01-30 13:02:53 · 377 阅读 · 0 评论 -
Python-Inspect.exe-uiautomation-基本操作-获取微信群成员信息
该模块用于Windows上的ui自动化(Windows XP with SP3, Windows Vista, Windows 7和Windows 8/8.1/10)。原创 2023-06-16 17:45:18 · 1590 阅读 · 0 评论 -
C++-继承-单继承-多继承-虚函数-内存结构分析-类分析-无源码-逆向分析(三)
与源码对比,还是存在较大的不同,工具的参数好像分析不正确,查阅相关资料,发现int main()这种写法,是可以传参数的,(应该是编译器有校正)。将相关解释,写在注释里,优化后的编译器行为,确实存在一定的不确定性,一般会在静态数据段生成虚表函数,但是工具没有检测到,这时就需要手工修正。但是实际上工具如果无法动态调试,有些地方就无法具体分析,或者分析出错,这时需要修正。继承对象的虚表指针,与父对象的虚表指针,指向的并不是相同的位置,所以相同的类用的相同的虚表指针集合,不同的类用的不同的虚表指针集合。原创 2022-11-15 21:19:07 · 235 阅读 · 0 评论 -
C++-RTTI-运行时类型识别-typeid类型名-dynamic_cast-多继承类型转换-详细分析-Com基础
为什么作者花这么多精力来整理这个RTTI,因为这个是C++高级技术多继承中必然的一环,在windows系统中随处可见的Com模块,它的基础技术就是C++的多继承,除了要了解多继承的内存结构,也要了解多继承的类型识别,以及父子类型的动态转换,这样才能理解Com模块设计思路,在将来的软件互操作设计中,才能从底层了解,技术上为啥这样设计。原创 2022-11-13 11:30:41 · 639 阅读 · 0 评论 -
C++-继承-多继承-类型转换-内存结构分析-汇编分析-逆向分析(二)
本文介绍了多继承的内存结构特点,但是没有深入分析菱形继承和虚继承等问题,一来这些技术在使用时,由于复杂的交互关系,容易产生莫名奇妙的问题,如果不是非它们不可,应该尽量设计更加清晰的类继承关系,这样使用起来才更不容易出错,另外一方面使用频率不高,如果遇到这类问题,在一般多继承的内存结构上,也是非常容易得到它们的内存结构布局。除了多继承,本文还分析了C++提供的类型转换,更合更充分的利用编译器的检查和运行期间的检查,读者视情况使用。原创 2022-11-11 17:21:33 · 549 阅读 · 0 评论 -
C++-继承-单继承-虚函数-内存结构分析-汇编分析-逆向分析(一)
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型级别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态“。对于使用者而言,意思就是将复杂的子类,按照父类统一的函数接口来进行访问。原创 2022-11-11 10:42:55 · 534 阅读 · 0 评论 -
C++-源代码调试-Visual Studio-X64dbg-WinDbg-插件开发
如果宿主软件,存在反调试技术,我们开发插件的第一步就是干掉反调试,但这往往是一个复杂的工程,具体的技术可以查看相关教程,这样就需要一个强大的反汇编工具,比如X64dbg,同样可以先启动目标软件,然后可以在指定模块下断点,查看程序运行情况,使用X64dbg的读者,需要具备一定的逆向分析能力,如汇编代码阅读能力。看到此文的很多读者,可能会疑问,都有源代码,还要介绍怎么调试,这是为何,这主要是很多时候系统运行的复杂性,有可能我们只有部分代码,或者传统的调试器无法使用(反调试技术的存在)。原创 2022-11-09 08:00:00 · 550 阅读 · 0 评论 -
CorelDraw插件开发-X4-反调试分析-CDR插件开发
对Kernel32.dll中的IsDebuggerPresent函数,可以在主程序中导入位置进行修改。在crlutl,非直接位置调用了这个调试状态跟踪。通过这类反调试,可以采用忽略异常的方法,将异常还是交由程序对应的代码进行处理,让其处理对应的流程。非常奇怪,在早期的X4版本里,竟然存在反调试,不让开发插件的软件工程师进行调试分析,本文针对这个奇怪的问题进行逆向分析。但是很奇怪,所以的异常都过了之后,发现应用程序退出了。打开调试->窗口->异常设置,取消对应的异常中断。这是最简单的过反调试的方法。原创 2022-11-08 08:00:00 · 337 阅读 · 0 评论 -
CorelDraw插件开发-_bstr_t-字符串对象-内存结构分析-CDR插件开发
通过范例的形式,分析_bstr_t对象的内存模型,方便在逆向分析时遇到此对象时,更好的理解,同时熟练使用X64dbg查看内存数据。原创 2022-11-07 12:36:13 · 156 阅读 · 0 评论 -
CorelDraw插件开发-_bstr_t-字符串对象-SysAllocString-SysReAllocString-SysFreeString-CDR插件开发
bstr_t是Com编程中,对BSTR的封装, Com组件传输字符串有固定的标准,就是BSTR,这样才能在不同的语言里调用。函数返回的指针指向BSTR的第一个字符,而不是BSTR在内存的第一个字节。另外,复制BSTR意味着制作字符串的一个拷贝,不是简单的复制指针,BSTR字符数组内部可以包含嵌入的NULL字符。看作BSTR,虽然他们都指向一个字符数组,但是他前边的四个字节的内容是无效的,也就是BSTR的长度无效。将以前分配的字符串重新分配为第二个字符串的大小,并将第二个字符串复制到重新分配的内存中。原创 2022-11-07 09:16:06 · 269 阅读 · 0 评论 -
Com插件开发-CDR插件-自动化接口-IDispatch接口-原理解析
向支持自动化的编程工具和其他应用程序公开对象、方法和属性。COM组件实现IDispatch接口以支持自动化客户端(如Visual Basic)的访问。主要用于其它脚本语言根据名称或者ID来调用对应的功能。原创 2022-11-06 10:59:06 · 621 阅读 · 0 评论 -
Com插件开发-VBE-模块导出函数-DllRegisterServer-DllUnregisterServer-DllGetClassObject-DllCanUnloadNow-使用时机场合
CoGetClassObject会帮我们完成根据CLSID找到对应DLL的工作,导出对应的接口并不是直接导出组件对象的接口,而是通过一个工厂对象来完成导出。DllGetClassObject根据传入的CLSID返回对应的工厂对象,工厂对象再进一步创建组件对象。来检测当前进程中所有COM组件,发现某个组件的DllCanUnloadNow函数返回TRUE就调用FreeLibrary函数,COM库不会主动调用CoFreeUnusedLibraries,推荐客户在空闲时刻调用(如单开一个线程处理)。原创 2022-11-06 08:16:59 · 319 阅读 · 0 评论 -
什么是TLB文件,怎样从dll文件中提取TYPEID信息?- IID
IDL是一种用来说明操作(过程或函数),操作的参数以及数据类型的语言,它在语法上继承于C语言,但形式上和C语言有很多不同,当然也有一些符合自己特点的适合于分布计算的特殊语法。TLB文件是一个说明文件,通过TLB文件,用户可以得知你的DLL中的COM接口以及常量等信息。如果给你一个dll,或者windows自带的dll,是否有可能提取其Com接口信息,答案是可以的。采用visual studio IDE打开对应的dll文件,然后选择第一步右键,第二步导出bin文件,最后将后缀重命名为.tlb文件即可。原创 2022-11-02 10:41:18 · 1026 阅读 · 0 评论 -
在CorelDraw中,VBA宏调用是如何执行的?
从上面的分析,没有得到特别有价值的消息,只是清晰一点,VBE和主程序是高度分离的。至于主程序是如何初始化VBE,还有待进一步的分析。原创 2022-11-02 08:35:39 · 495 阅读 · 0 评论 -
在windows下CorelDraw中VBE的调用原理?
猜测vbe可能是Com库,然后通过Com库进行调用,我们在vbe的DllGetClassObject中下断点,依次来查看调用关系,同样没有找到,我们在loadlibrary中下断点,查看加载模块。直接启动CorelDraw,查看其加载模块,发现并没有加载VBE7.DLL、VBEUI.DLL和VBEUIRES.DLL,说明启动CorelDraw时,VBE默认是不加载的,只有在需要的时候,才进行动态加载。DLL已载入: 00007FF98C2B0000 C:\Windows\System32\msi.dll。原创 2022-11-01 16:13:53 · 288 阅读 · 0 评论 -
在Windows下Com库的原理以及它与系统的关系?- CoCreateInstance解析
本文介绍了windows系统下,采用Com创建对象的原理与过程,关键在于理解CLSID(用它定位目标模块)和IID(用它定位目标接口(纯虚函数接口函数集合))。通过函数CoCreateInstance创建目标接口指针来实现功能的调用。原创 2022-11-01 10:00:59 · 510 阅读 · 0 评论