-
使用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
至此注入完成 源碼