导航:首页 > 源码编译 > 反编译方法

反编译方法

发布时间:2022-01-28 21:41:34

❶ 反编译怎么入门

计算机软件反向工程(Reversepengineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,作为自己开发软件时的参考,或者直接用于自己的软件产品中。

不知道你到什么程度...目前java 可以去看下孙鑫的 不难懂

❷ erlang 反编译工具+方法

编译好的erlang 的debug版本程序反编译步骤如下(比如 a.beam):
1、{ok, {_, [{abstract_code, {_, Ac}}]}} = beam_lib:chunks(code:which(a), [abstract_code]).
2、io:fwrite("~s~n", [erl_prettypr:format(erl_syntax:form_list(Ac))]).
这样我们就得到的a.beam的预处理之后的程序。
如果我们想查看beam文件的汇编程序erts_debug:df(a). 执行完毕会得到a.dis文件,里面就是对应的汇编程序
注意只有debug版本才能反编译

❸ 求教个反编译的方法

public static IEnumerable<T> Query<T>(this DbConnection cn, string commandText, params object[] parameters)
{
//var func = null;
List<T> list = new List<T>();
DbCommand dbCommand = DB.CreateCommand(commandText, cn, parameters);
IEnumerable<DB.PropInfo<T>> props = null;
Type typeFromHandle = typeof(T);
bool flag = typeFromHandle.IsPrimitive || typeFromHandle.IsValueType || typeFromHandle == typeof(string);
if (!flag)
{
props = DB.GetSettableProps<T>();
}
DbDataReader dbDataReader = dbCommand.ExecuteReader();
if (!dbDataReader.HasRows)
{
dbDataReader.Close();
return list;
}
if (flag)
{
while (dbDataReader.Read())
{
list.Add((T)((object)Convert.ChangeType(dbDataReader[0], typeof(T))));
}
}
else
{
List<string> list2 = new List<string>();
for (int i = 0; i < dbDataReader.FieldCount; i++)
{
list2.Add(dbDataReader.GetName(i));
}
var arg_10E_0 =
from n in list2
select new
{
n = n,
prop = props.FirstOrDefault((DB.PropInfo<T> p) => string.Equals(p.Name, n, StringComparison.Ordinal)) ?? props.FirstOrDefault((DB.PropInfo<T> p) => string.Equals(p.Name, n, StringComparison.OrdinalIgnoreCase))
};
//if (func == null)
//{
//func = (<>h__TransparentIdentifier0 => new
//{
//Name = //<>h__TransparentIdentifier0.n,
//Property = //<>h__TransparentIdentifier0.prop
//});
//}
var list3 = arg_10E_0.Select(item => new { Name = item.n, Property = item.prop });
while (dbDataReader.Read())
{
T t = Activator.CreateInstance<T>();
foreach (var current in list3)
{
current.Property.Setter(t, Convert.ChangeType(dbDataReader[current.Name], current.Property.Type));
}
list.Add(t);
}
}
dbDataReader.Close();
return list;

❹ 如何反编译一个MOD

第一部分 下载forge源码+建立MOD开发环境。
(1)下载forge源码
注意下载src链接的版本,不要搞错。比如,forge-1.7.10-10.13.2.1230-src.zip(以src.zip结尾)

注意到有很多下载地址,每一行是一个版本,选择适合自己的版本。
右边Downloads列有几个链接,其含义如下:
(a)Changelog——更改日志。
(b)Installer——jar格式的安装包,使用与所有平台(Win/Linux/Mac)
(c)installer-win——专属于Windows的安装包。
(d)javadoc——自动生成的java文档。
(e)src—forge源代码。
(f)universal——单纯的jar库,非安装包。
(g)userdev——面向开放者。
(2)下载之后加压缩到某个文件夹
只留下五个东西:gradle和src文件夹,build.gradle,gradlew和gradlew.bat。
其它的东西没有用,可以删除。
打开 Windows命令行,cd定位到刚才的文件。
运行:gradlew.bat setupDecompWorkspace --refresh-dependencies
等待forge反编译完成。


第二部分,BON进行反混淆。
BON全名bearded-octo-nemesis,是由immibis开放的一个MOD反混淆工具。(immibis可是MOD届大名鼎鼎的人,比如redlogic,Liquid XP,Advanced Machines等都是非常好用的模组)。
新建一个BON文件夹。
(1)下载userdev版本的forge。还是刚才上面那个地址,只不过这次下载userdev版本。
把下载到的文件放到BON文件夹。
(2)找到forge反编译之后的文件。
这个文件在C:Users{username}目录下的
.gradlecachesminecraft etminecraftforgeforge1.7.10-{forgeversion}
比如咱们这个例子就是,1.7.10-10.13.2.1230。把这个文件夹复制一份到BON文件夹。
(3)下载BON
下载到一个BON.jar文件,放到上面的文件夹内。
(4)运行。
双击BON.jar之后运行。

Forge userdev.jar:选择(1)下载的文件。
FG cache folder:选择(1)复制出来的文件夹。
然后在输入文件位置选择你想反混淆的代码,再选择要保持的输出。
操作(operation)注意选择:反混淆模组。
点击Go按钮,等待完成。
反混淆之后的代码一般以deobf结尾。
比如StevesFactoryManagerA93.jar,反混淆之后就是StevesFactoryManagerA93.deobf.jar。
这时候就可以用jd-gui无障碍的查看代码了。


第三步 反编译成源代码
如果觉得用jd-gui查看不方便的话,可以考虑用fernflower进行反编译。
fernflower是MCP官方用来发编译minecraft代码的神器,虽然没有jd-gui操作简便,但是它反编译代码的质量非常高。又是官方搭配minecraft使用,是用来反编译代码的不二之选。
如何获得fernflower?
fernflower的官方代码池,然而需要编译不方便使用。
这里提供另外两个方法:
(1)伴随MCP发布的版本。
去mcp官方网址下载,目前适用于1.7.10的是9.08版。
解压缩之后,runtime/bin目录下面,复制出来。
(2)forge提供的版本
去上面提到的.gradle/caches/minecraft目录下,有一个fernflower-fixed.jar文件。
目前尚不知道,mcp和forge版本的有啥差别。
复制到一个位置之后,打开命令行
java -jar fernflower.jar [要反编译的包] [保存位置]
反编译之后的代码,就可以用记事本直接查看。

❺ 反编译什么意思,具体该怎么用

反编译:高级语言源程序经过编译变成可执行文件,反编译就是逆过程。计算机软件逆向工程,又称计算机软件恢复工程,是指对其他软件的目标程序(如可执行程序)进行“逆向分析和研究”,从而推导出设计思想、原理、结构、算法、处理过程、操作方法等要素,等被其他软件产品使用,在某些特定情况下可能会衍生出源代码。反编译可以作为开发软件时的参考,也可以直接用于软件产品中。

(5)反编译方法扩展阅读:

如果编译过程中发现源程序有错误,编译程序应报告错误的性质和错误的发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动纠正错误,这些工作由错误处理程序完成。需要注意的是,一般上编译器只做语法检查和最简单的语义检查,而不检查程序的逻辑。

❻ Java反编译使用方法我是新手,高手快来

要学反汇编语言的。。当然没有看源代码简单,还可以通过反编译调试自己想一下代码是啥然后自己写出伪代码,要是想破解就该几个跳转就可以了。

❼ 有没有比较完美的JAVA反编译方法

1、Java反编译插件 —— Jadclipse JadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到eclipse的plugins目录下,然后修改window -> Preferences -> Java -> JadClipse

❽ 如何反编译一个exe文件,并修改里面一句代码

1、首先打开浏览器,网络搜索“反编译工具ILSpy”,选择一个安全的网站进行下载。

❾ 怎么反编译软件

高级语言源程序经过 编译 变成可执行文件,反编译就是逆过程。 但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。 计算机软件反向工程(Reversepengineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,作为自己开发软件时的参考,或者直接用于自己的软件产品中。 反编译是一个复杂的过程,所以越是高级语言,就越难于反编译,但目前还是有许许多多的反编译软件: VB: VBExplorer 、VB反编译精灵和VBRezQ;只能反编译界面图像,好像代码不能完全反编译 JAVA: JAD ;java的反编译比较常见,所以反编译比较完全, 将class文件反编译成java文件也是有可能的 C++ : eXeScope Dephi: DEDE c#:Reflector 易语言:E-Code Explorer.exe(易格式可执行文件分析器)

❿ 软件反编译

只能修改其中的图片、代码,替换其中的资源
原代码一般是得不到的

阅读全文

与反编译方法相关的资料

热点内容
如果appstore被删了怎么办 浏览:286
电脑报2017pdf 浏览:266
思考快与慢pdf下载 浏览:696
ins命令只能插入一条记录吗 浏览:548
spss如何连接本地服务器 浏览:624
植发稀少加密多少钱一根 浏览:692
无法接服务器是什么情况 浏览:212
压缩裤的尺寸如何选择 浏览:471
服务器命令如何下载文件夹下 浏览:550
交叉编译工具的安装位置 浏览:587
linux命令ping本地地址 浏览:214
方舟编译器和超级文件管理 浏览:118
81年的程序员 浏览:32
技能人才占比算法 浏览:55
s8文件夹忘记密码怎么办 浏览:918
大家的日语中级pdf 浏览:438
编译与运行什么区别 浏览:841
死或生5PS3解压 浏览:244
pdf怎么删字 浏览:54
买压缩面膜注意什么 浏览:111