问题描述

我们在日常开发中经常会遇到,想要对dll文件做修改的操作,但苦于没有源代码,只能想想其他办法

解决问题

办法就是通过几个工具来反编译、正向编译、修改属性

反编译、正编译

参考https://wenku.baidu.com/view/5cf650cfe309581b6bd97f19227916888486b986.html

开始反编译:

找到工具ildasm.exe

位置:C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\ildasm.exe

双击ildasm.exe

将你需要反编译的dll拉到这个ildasm界面-》file-》Dump-》勾选全部-》选择指定文件夹-》导出核心文件il文件、res文件

一般你只需修改il文件即可,比如你要修改dll中引用的dll版本,就很好修改了,直接替换即可,如果你要修改的内容多,就要学习下il语法了

开始正编译

找到工具ilasm.exe

位置:C:\Windows\Microsoft.NET\Framework64\v2.0.50727\ilasm.exe

打开命令窗口执行:

ilasm.exe /dll/resource=res文件路径 il文件路径

之后dll就会生成到res il所在文件夹

修改dll属性

有时候你会发现就算你都修改了dll也生成回来,但还是不能用,可能就是你的dll属性在反编译时候被清空了,需要通过工具重新指定回来

参考:https://blog.csdn.net/segen_jaa/article/details/108421964

下载工具:rcedit.exe

##修改文件说明

"G:\gitroot\rcedit\Default\rcedit.exe" "G:\worktemp\20200905\test.dll" --set-version-string FileDescription "我的文件"

##修改文件版本

"G:\gitroot\rcedit\Default\rcedit.exe" "G:\worktemp\20200905\test.dll" --set-file-version "2.0.0.0"

##修改产品名称

"G:\gitroot\rcedit\Default\rcedit.exe" "G:\worktemp\20200905\test.dll" --set-version-string ProductName "我的产品"

##修改产品版本

"G:\gitroot\rcedit\Default\rcedit.exe" "G:\worktemp\20200905\test.dll" --set-product-version "2.0.0.0"

##修改版权

"G:\gitroot\rcedit\Default\rcedit.exe" "G:\worktemp\20200905\test.dll" --set-version-string LegalCopyright "我的版权"

##修改商标

"G:\gitroot\rcedit\Default\rcedit.exe" "G:\worktemp\20200905\test.dll" --set-version-string LegalTrademarks "我的商标"

##修改名称

"G:\gitroot\rcedit\Default\rcedit.exe" "G:\worktemp\20200905\test.dll" --set-version-string OriginalFilename "原始名称"

至此反编译操作完成

祝你顺利!!!!!

dll反编译(修改引用文件、修改代码)再生成dll的更多相关文章

  1. 反编译工具 使用.NET JustDecompile来反编译你的程序代码

    原文地址:http://www.it165.net/pro/html/201310/7383.html 前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序 ...

  2. 使用.NET JustDecompile来反编译你的程序代码

    前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序,由于因为是别人写的所以我们并没有原始码可以直接阅读,碰到这种情况我们就需要去反编译这些程序及 DLL ...

  3. Android Studio 动态调试 apk 反编译出的 smali 代码

    在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...

  4. ILSpy,DLL反编译工具,学习与了解原理的好帮手

    你是否一直苦于找到了好的dll却只知道怎么使用而不知道其原理. 你是否在使用一个dll的时候发现它在一些参数时报错了却没法解决. 你是否想成为一个优秀的.net开发,成为一个优秀的系统制造者. 那你需 ...

  5. apk反编译、smali修改、回编译笔记

    最近下了一个apk程序,但是一启动会弹出一个流氓广告.这个广告不是原厂商加的,而是有人在原有apk程序的基础上,加了一个壳,让apk先启动他加的广告,再启动原来的程序,很恶心.于是想去掉它. 试了几个 ...

  6. dll反编译工具总结

    有好多.net程序有加密狗或者有验证,如果exe或dll没有做过特殊处理,破解.net程序其实很简单,不过你要有足够的耐心! 我只做个简单的小例子,把公司的软件破解了,不要被老大知道,吼吼~~~~ 1 ...

  7. .net dll反编译出现的问题,以及部分修复的方法

    常用.net反编译工具 1.Reflector 9.0.2 2.JustDecompile2015.3.928.0j 3.ILSpy 4.CS资源文件批量转换工具 base.AutoScaleMode ...

  8. [转]dll反编译工具(ILSpy)的使用

    软件地址: 链接:https://pan.baidu.com/s/1YunJ3MAuNisGtl8YYzr4hw 密码:ejx8 工具使方法 1.将压缩文件进行解压,打开exe文件. 2.打开后,选择 ...

  9. OAF_开发系列28_实现OAF中反编译获取class包代码JD Compiler(案例)

    20150730 Created By BaoXinjian

随机推荐

  1. Android studio第一个程序HelloWorld

    今天主要跟着视频设计了第一个安卓项目,了解了大改的目录结构 每天会学习线性布局和相对布局

  2. 哈工大 计算机网络 实验一 HTTP 代理服务器的设计与实现

    计算机网络实验代码与文件可见github:计算机网络实验整理 实验名称 HTTP 代理服务器的设计与实现 实验目的: 熟悉并掌握 Socket 网络编程的过程与技术:深入理解 HTTP 协议, 掌握 ...

  3. 获取HTML中所有图片的 URL

    /// <summary> /// 获取HTML中所有图片的 URL /// </summary> /// <param name="strHtml" ...

  4. 01--c实现基础客户端和服务端与c++ boost.asio实现对比

    c实现服务端和客户端交互: 学习查阅的博客: https://blog.csdn.net/u011068702/article/details/54380259 https://blog.csdn.n ...

  5. sql数据处理

    安装pymysql 读取数据库数据进行pandas操作,并用seaborn和matplotlib进行画图

  6. 制作CocoaPods公有库和私有库

    认识公有库和私有库 公有库:开源自己封装的库供别人使用,且往cocoaPods的官方Repo仓库(即CocoaPods Master Repo)中新增自己库的索引,该库索引是以*.podspec.js ...

  7. ARP攻击的发现、攻击原理、攻击方式、防护,竟然这么简单?!

    ARP协议概述 ARP协议(address resolution protocol)地址解析协议. 一台主机和另一台主机通信,要知道目标的IP地址,但是在局域网中传输数据的网卡却不能直接识别IP地址, ...

  8. 二进制部署1.23.4版本k8s集群-6-部署Node节点服务

    本例中Master节点和Node节点部署在同一台主机上. 1 部署kubelet 1.1 集群规划 主机名 角色 IP CFZX55-21.host.com kubelet 10.211.55.21 ...

  9. pandas常用操作详解——pd.concat()

    concat函数基本介绍: 功能:基于同一轴将多个数据集合并 pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=Fa ...

  10. LGP3346题解

    广义 SAM 比较简单的题/fad 题意:树上所有路径一共能够组成多少个本质不同子串? 并且数据保证最多只有20个叶子节点. 我们先来考虑一下一种特殊情况: 对于路径 \([u,v]\),\(u\) ...