-
使用ILSpy或Reflector 反编译N3000并导出解决方案,便于搜索方法代码
-
使用ILDASM生成中间代码D:\app\WG\AccessControl\IL\N3000.il
操做以下:(可参考) html
打开目录C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin app
运行ildasm.exe spa
经过IL DASM的界面,打开N3000.EXE文件 3d
在文件菜单中使用转储,转储IL文件为D:\app\WG\AccessControl\IL\N3000.IL htm
-
用NOTEPAD++打开IL文件
-
公开wgconfig类
-
搜索beforefieldinit WG3000_COMM.Core.wgAppConfig
-
修改private为public
-
公开icPrivilege
-
搜索beforefieldinit WG3000_COMM.DataOper.icPrivilege
-
修改private为public
-
公开icConsumerShare
-
搜索beforefieldinit WG3000_COMM.DataOper.icConsumerShare
-
修改private为public
-
公开
icConsumer
-
搜索beforefieldinit WG3000_COMM.DataOper.icConsumer
-
修改private为public
-
公开
icControllerConfigureFromDB
-
搜索beforefieldinit WG3000_COMM.DataOper.icControllerConfigureFromDB
-
修改private为public
此时agent项目应该能编译经过,编译前会调用C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe将N3000.IL文件编译为N3000.EXE,表明项目会调用N3000.EXE中的方法 blog
C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe n3000.il /exe /output=n3000.exe get
-
注入QGate.Spy.DLL
-
搜索void Main(string[] cmdArgs)
-
查看反编译出来的 N3000.EXE的源码中的入口代码,寻找合理的注入位置,通常选择在登陆后,主窗体加载前
-
从void Main开始搜索frmADCT3000,在IL文件中找到相应位置
-
添加新行,注意行号要根据上下文肯定
IL_07c2: call void [QGate.Spy]QGate.Spy.ClassSpy::Start() cmd
-
保存,从新编译N3000.EXE
至此注入完成 源码