肯定有一百万本关于构建编译器的理论和技术的书籍和论文。有没有资源可以做相反的事情?我对任何特定的硬件平台都不感兴趣。寻找深入研究该主题和困难的好书/研究论文。
我想用ILSpy反汇编整个.NET程序集.
我使用此代码作为基础:http:
//skysigal.xact-solutions.com/Blog/tabid/427/entryid/2488/Default.aspx
它工作正常,就像我有一个引用Npgsql.dll(或任何其他非gac程序集)的程序集,然后我得到AssemblyResolutionException.
无法解析程序集:'Npgsql,Version = 2.0.11.92,Culture = neutral,PublicKeyToken = 5d8b90d52f46fda7'
我知道如何获得引用的程序集,但是如何将它们添加到ast?
// SqlWebAdmin.Models.Decompiler.DecompileAssembly("xy.dll");
public static string DecompileAssembly(string pathToAssembly)
{
//Assembly assembly = Assembly.LoadFrom(pathToAssembly);
System.Reflection.Assembly assembly = System.Reflection.Assembly.ReflectionOnlyLoadFrom(pathToAssembly);
//assembly.GetReferencedAssemblies();
//assembly.GetReferencedAssemblies(assembly);
Mono.Cecil.AssemblyDefinition assemblyDefinition =
Mono.Cecil.AssemblyDefinition.ReadAssembly(pathToAssembly);
ICSharpCode.Decompiler.Ast.AstBuilder astBuilder = new ICSharpCode.Decompiler.Ast.AstBuilder(new ICSharpCode.Decompiler.DecompilerContext(assemblyDefinition.MainModule));
astBuilder.AddAssembly(assemblyDefinition);
//new Helpers.RemoveCompilerAttribute().Run(decompiler.CompilationUnit);
using (System.IO.StringWriter output = new System.IO.StringWriter())
{
astBuilder.GenerateCode(new ICSharpCode.Decompiler.PlainTextOutput(output));
string result = output.ToString();
return result;
}
return "";
} // End Function DecompileAssembly
Run Code Online (Sandbox Code Playgroud) 我只需要在C#代码中搜索一些文本.
我已经有.NET Reflector和File Disassembler Add-In,但这些似乎只是反编译一个DLL.
在未安装JD反编译器的备份笔记本电脑上工作.去了网站下载(http://java.decompiler.free.fr),但下载链接现在似乎引用了Google云端硬盘的位置,下面的错误信息不断出现.
我肯定会确保我不公开与GD分享任何东西,没有意识到有限制.在此期间,有人知道我还能在哪里获得该软件吗?
错误:
抱歉,您目前无法查看或下载此文件.
最近有太多用户查看或下载过此文件.请稍后再尝试访问该文件.如果您尝试访问的文件特别大或与许多人共享,则可能需要长达24小时才能查看或下载该文件.如果您在24小时后仍无法访问文件,请与您的域管理员联系.
我知道其中有一部分已被问过,但我的搜索仍空手而归.目前我正在使用JD-Gui来反编译jar文件并已切换到fernflower,但它似乎存在枚举问题,不会通过抛出NPE来反编译特定的类.我甚至尝试过Jode,JAD,甚至使用JD-Core(从JD-IntellJ插件中提取0.6.1快照/修改/加载的本机),但都充满了错误,字节码等等.(JD-Gui中的JD-Core 0.6.2除外)我的问题是有没有人找到一个可以处理Java 6/7的合理反编译器,可以通过命令行甚至是尚未发现的库来访问.
我已经尝试了JadClipse和JD-Eclipse插件,但是每次打开类文件时似乎都没有工作它说"找不到源".
默认情况下,我的*.class和*.class(没有源代码)都设置为'JD-Eclipse',但它似乎不起作用,还有其他人试过这个或者这两个插件现在都已弃用了吗?
以下是我的环境:
Eclipse:Kepler JDK:7
所以我有一个包含 scala 作为源代码的 jar 文件,但我丢失了原始代码。有没有办法将 jar 中的类文件转换为 Scala 函数和类,而不是编译器生成的 java 类?
我试过在它上面使用反编译器,它只给了我零意义的 java 代码。
先感谢您!
我想看看怎么样
public String Replace(String oldValue, String newValue);
Run Code Online (Sandbox Code Playgroud)
mscorlib.dll(System.String)中的方法有效.
我用dotPeek反编译了mscorlib.dll,并在方法内部调用了ReplaceInternal方法,我找不到它
string s = ReplaceInternal(oldValue, newValue);
Run Code Online (Sandbox Code Playgroud)
我甚至在GIT的开源.NET Core上搜索了这个方法,但没有运气.
请解释这种方法在哪里以及里面是什么?
这个问题只是出于我的好奇心,所以我想得到一个完整的答案,而不是简单的“是”或“否”。
让我们考虑这段代码:
// Is stored in util files and used to omit annoying (this as? Smth)?.doSmth()
inline fun <reified T> Any?.cast(): T? {
return this as? T
}
class PagingOnScrollListener(var onLoadMore: (currentPage: Int, pageSize: Int) -> Unit) : RecyclerView.OnScrollListener() {
constructor() : this({ _, _ -> Unit })
private var loading = false
private var currentPage = 0
private var latestPageSize = -1
var visibleThreshold = VISIBLE_THRESHOLD_DEFAULT
var pageSize = PAGE_SIZE_DEFAULT
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { …Run Code Online (Sandbox Code Playgroud) 几天前,我的硬盘损坏了,因为我丢失了整个项目文件。我有那个项目的 .apk 文件。
但问题是 .apk 文件包含 100% Kotlin 语言。我找到了一种反编译代码的方法,但不幸的是它不会反编译回 Kotlin 代码。反编译后,我得到了一些奇怪的 .java 类。
请帮助我如何反编译我的 .apk 文件,这对我来说是一个非常重要的项目。有什么办法请建议:)
decompiler ×10
java ×5
.net ×3
c# ×3
decompiling ×2
kotlin ×2
android ×1
eclipse ×1
ilspy ×1
jar ×1
javacompiler ×1
kotlinc ×1
reflection ×1
replace ×1
scala ×1
scalac ×1
string ×1