bimlgq 发表于 2022-3-13 00:46

记一BIM出图插件和谐过程(来论坛第一贴,大神略过)

涉及工具:
de4dot
dnSpyx64
教程类型:
逆向限制
是否讲解思路和原理:

以下为图文内容:
安装完发现没有桌面快捷方式,打开revit后使用功能发现直接弹出登录对话框:此时到C:\ProgramData\Autodesk\Revit\Addins\20xx查看Revit启动时加载的dll(xxx.addin文件),如下:记录ZH.Plugin.Draw.dll及FullClassName,后在插件安装目录找到DLL,使用dnSpyx64神器打开dll。发现方法名全部混淆,使用de4dot大法去混淆。Revit二次开发时定义按钮事件如下:RibbonPanel Changyong = application.CreateRibbonPanel("插件名称", "一级菜单"); PushButtonData shensuoData = new PushButtonData("shensuo","功能名称",dll_path,"方法函数"); PushButton shensuoButton = Changyong.AddItem(shensuoData) as PushButton;因此我们只需分析PushButtonData,后找到绑定的方法函数。以管道标注为例,进入(该插件对方法进行了封装)比较明了,PipeLineTaging应该就是方法名称,点进去:后发现到新dll,去混淆,后进入,找到同名称方法,如下图:话不多说,直接让if不执行,直接到else,修改如下:保存测试。发现已经秒杀,测试其他功能,已经可以使用了。总结:revit插件主要还是要找到定义按钮时绑定的方法,而定义按钮时要吗数据全在dll里,要吗将数据写在xml里读取循环定义。

vpgPGJRwInb 发表于 2022-3-13 00:46

谢谢大神的奉献

WOoJhZzI4596 发表于 2022-3-13 07:42

感谢楼主

lDeJTj 发表于 2022-3-13 08:12

感谢楼主

veUDqa251 发表于 2022-3-13 08:35

感谢楼主

YKkUuXp10 发表于 2022-3-13 08:39

谢谢分享

PbE35648 发表于 2022-3-13 08:45

感谢楼主

omgTsQ6917 发表于 2022-3-13 08:47

谢谢分享

SCGNZkMfvRec 发表于 2022-3-13 08:57

大佬无敌

hldcY791 发表于 2022-3-13 09:00

谢谢分享
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 记一BIM出图插件和谐过程(来论坛第一贴,大神略过)