• 微耕N3000注入


    1. 使用ILSpy或Reflector 反编译N3000并导出解决方案,便于搜索方法代码
    2. 使用ILDASM生成中间代码D:appWGAccessControlILN3000.il

      操作如下:(可参考

      打开目录C:Program Files (x86)Microsoft SDKsWindowsv7.0ABin

      运行ildasm.exe

       

      通过IL DASM的界面,打开N3000.EXE文件

       

      在文件菜单中使用转储,转储IL文件为D:appWGAccessControlILN3000.IL

       

       

    3. 用NOTEPAD++打开IL文件
      1. 公开wgconfig类
        1. 搜索beforefieldinit WG3000_COMM.Core.wgAppConfig

    1. 修改private为public
    1. 公开icPrivilege
      1. 搜索beforefieldinit WG3000_COMM.DataOper.icPrivilege

    1. 修改private为public
    1. 公开icConsumerShare
      1. 搜索beforefieldinit WG3000_COMM.DataOper.icConsumerShare

    1. 修改private为public
    1. 公开icConsumer
      1. 搜索beforefieldinit WG3000_COMM.DataOper.icConsumer

    1. 修改private为public

     

    1. 公开icControllerConfigureFromDB
      1. 搜索beforefieldinit WG3000_COMM.DataOper.icControllerConfigureFromDB

    1. 修改private为public

     

    此时agent项目应该能编译通过,编译前会调用C:WindowsMicrosoft.NETFrameworkv2.0.50727ilasm.exe将N3000.IL文件编译为N3000.EXE,代表项目会调用N3000.EXE中的方法

    C:WindowsMicrosoft.NETFrameworkv2.0.50727ilasm.exe n3000.il /exe /output=n3000.exe

    1. 注入QGate.Spy.DLL
      1. 搜索void Main(string[] cmdArgs)
      2. 查看反编译出来的 N3000.EXE的源码中的入口代码,寻找合理的注入位置,一般选择在登录后,主窗体加载前

     

     

     

    1. 从void Main开始搜索frmADCT3000,在IL文件中找到相应位置

    1. 添加新行,注意行号要根据上下文确定

    IL_07c2: call void [QGate.Spy]QGate.Spy.ClassSpy::Start()

    1. 保存,重新编译N3000.EXE

     

    至此注入完成

     

  • 相关阅读:
    MVC动态添加文本框,后台使用FormCollection接收
    使用结构struct作为Dictionary<TKey,TValue>的键
    扩展方法的几个实例,扩展基本类型、接口、通过反射让扩展方法使用私有成员等
    使用Enum.TryParse()实现枚举的安全转换
    .NET泛型04,使用Lazy<T>实现延迟加载
    .NET泛型03,泛型类型的转换,协变和逆变
    .NET泛型02,泛型的使用
    dd、split、csplit命令
    seq命令
    uniq命令
  • 原文地址:https://www.cnblogs.com/QinQouShui/p/7583196.html
Copyright © 2020-2023  润新知