.Net官方的MSIL工具,你学会了吗?

发表于:2023-8-01 09:18

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:江湖    来源:江湖评谈

  前言
  很多人用第三方工具修改(实际上修改了也没用,现代化加密工具是直接hook JIT)MSIL
  比如dnspy/ilspy/dotpeek/Reflector 等等,这些工具看似不错,实际上完全不经打,如果把程序集进行虚拟化,这些工具完全无法展示出来。本篇还是来看下比较能打的ILDASM和ILASM.它是微软官方工具。
  概念
  ILDASM可以把托管的DLL反编译成IL代码,把它导出.IL后缀名的文件,修改这些IL文件之后,通过ILDASM把IL文件重新编译成DLL或者Exe。
  1.路径:
  ildasm的路径
  C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\ildasm.exe
  C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\ildasm.exe
  ilasm的路径
  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ilasm.exe
  2.操作
  打开ILDASM之后,把DLL拖进去。然后点击菜单栏-》文件-》转储-》转出选项不要动-》确定-》选择路径填写导出名称(注意这里的后缀名是.il)。
  在导出之后的路径,它会生成.il和.res两个后缀名的文件。把.il的后缀名文件通过记事本把它打开,然后修改下。修改了之后就可以用ilasm通过如下命令重新组装成DLL或者Exe:
  比如路径是:C:\Users\Administrator\Desktop\dnguard_iltest导出名称是:test。
  运行如下命令:
  D:\Visual Studio\IDE>ilasm "C:\Users\Administrator\Desktop\dnguard_iltest\test.il" "C:\Users\Administrator\Desktop\dnguard_iltest\test.res" /output="C:\Users\Administrator\Desktop\dnguard_iltest\test.dll"
  Microsoft (R) .NET Framework IL Assembler.  Version 4.8.9105.0
  Copyright (c) Microsoft Corporation.  All rights reserved.
  Assembling 'C:\Users\Administrator\Desktop\dnguard_iltest\test.il'  to EXE --> 'C:\Users\Administrator\Desktop\dnguard_iltest\test.dll'
  Source file is UTF-8
  ilasm后面带上.il和.res文件的路径 /output后面带上输出的dll或者exe文件的路径即可。
  这样就非常容易的修改了IL代码,不需要借助任何第三方工具。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号