标签: decompiling

解释反编译的java类的结果代码的问题:MyType.access $ 102

我试图在我们正在使用的第三方框架中稍微扩展一个未记录的类.我用jd-gui反编译了.class文件,看到一个像这样定义的内部类:

private class DeactivateAction extends AbstractAction {
    public DeactivateAction() {
        super("Deactivate");
    }

    public void actionPerformed(ActionEvent paramActionEvent) {
        if (MyContainingType.this.someBoolean) {
            MyContainingType.access$102(MyContainingType.this, false);
            MyContainingType.this.add(MyContainingType.this.interceptor);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何解释"访问$ 102"这一行.MyContainingType扩展了javax.swing.JLayeredPane.这不能为我编译,所以如何解释这个并在我的扩展类中正确转换它?

java decompiling

2
推荐指数
1
解决办法
2307
查看次数

反编译.NET 2.0二进制文件

是否可以将.NET 2.0二进制文件(*.exe)反编译为某种可读代码?或者如果没有,只需从中提取一些信息(例如方法名称,调试信息等)?

.net decompiling reverse-engineering

2
推荐指数
1
解决办法
1512
查看次数

通常用于保护SWF免受反编译或至少防止代码/密钥被盗的方法是什么?

由于SWF非常容易反编译,如果我使用内部安全密钥分发SWF或者代码有一些有价值的代码,我应该如何保护它?

编辑:我认为反编译SWF非常容易,因为它是字节编码为SWF然后jitted运行.Java编译和执行也是如此.这是否意味着即使java代码也不够安全?

那么,为什么Java更加可靠和可靠,并且SWF在任何地方都不被认为是安全的?

apache-flex security flash actionscript decompiling

2
推荐指数
1
解决办法
725
查看次数

字母命名java类文件来自哪里?

伙计们,我今天使用了一个反编译器jd-gui,发现了一些非常奇怪的东西.

假设我有一个jar文件,lib.jar,我反编译它.结果是在同一个包下有一些名为A.class,B.class,a.class等的类文件.当我试图将反编译的源文件粘贴到eclipse项目中时,但IDE表示它不会接受同一文件夹下的A.class和a.class.怎么会这样?我猜没有人从a到z命名他/她的类文件.但反编译器告诉了我.

我还尝试在我的项目中导入lib.jar,发现我无法触及a.class和A.class所在的那个包下的任何公共类或接口.当我输入该包时没有提示,例如,"进口公司.工具."

谁能告诉我原因?在此先感谢,祝新年快乐!

java decompiling

2
推荐指数
1
解决办法
950
查看次数

aspx.cs和aspx.designer.cs在哪里?

我已经从一个不再可用的人那里获得了一个网站.在已部署的文件夹中,我有Config.aspx(请参阅代码).但我找不到codebehind文件.配置页面有效.我在哪里可以找到.cs文件?

谢谢

<%@ page language="C#" masterpagefile="~/Master/StaffPortal.master" autoeventwireup="true"
    inherits="Admin_Config" title="Configuration" codebehind="Config.aspx.cs" %>

<asp:content id="Content1" contentplaceholderid="PageBody" runat="Server">
    <div style="width: 405px; height: 25px" class="GeneralCaption">
    Configuration Parameters
    </div>
    <asp:Table ID="Table" runat="server" Style="width:100%">
    </asp:Table>
    <asp:Button ID="OKButton" runat="server" CssClass="GeneralButton" Text="OK" OnClick="OKButton_Click" />
    <asp:Button ID="CancelButton" runat="server" CssClass="GeneralButton" Text="Cancel" OnClick="CancelButton_Click" />
</asp:content>
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net decompiling decompiler

2
推荐指数
1
解决办法
1683
查看次数

我可以安全地隐藏ac #exe的加密密钥(以一种不能以任何已知的方式反编译的方式),就像在C/C++中一样吗?

我喜欢c#用于编程应用程序(我认为自己用c#中间,用C/C++稍微少一点,但我只是在学习,在竞技场中还没有真正的东西),而且我曾经喜欢它,直到我发现"有人"了解它MSIL(不是一个容易学习的任务)可以反编译我的代码.我真的不关心有人反编译我的代码,但我最关心的是我最终程序用户的安全性.我知道混淆器存在,我甚至知道一两个非常好,我听说(即使他们只是延迟反编译).

例如,如果我想使用c#解密某些内容,那么密钥应该在代码中的某些位置,使得使用我的程序的任何人都有危险(知道有人使用我的程序加密文件的人可以通过研究解密它我的MSIL代码,找到我的密钥).然后,由于这个原因,我认为开发加密/解密东西(或OpenSSL)的大量应用程序是疯狂的c#.

我的意思是,大多数用户不会知道用什么语言制作那个exe,但是很多人都可以编写nc#,这个人的精英可以阅读MSIL,而这个精英中的少数人想要破解什么是可能的黑客攻击.在那些喜欢破解的人中,有些人可以用不正当的意图来做这件事(在我们生活的无价值的世界里,任何人都不应该感到惊讶).

因此,如果我想制作一个从互联网上下载文件的程序,有人可能会干扰传输并做一些恶事,即使我使用OpenSSL和c#,因为c#文件中的某个地方是关键.我知道避免黑客攻击可能是不可能的,但看起来c#是一种非常不安全的方式.

它会发生在Java吗?(Java与C#具有相同的"解释"和"反编译"结构); 我的意思是,密钥在Java中可见(有一些受过教育的眼睛)在构建文件中的某些位置?或者Java是否使用了一些基于C/C++的API,这使得对密钥进行反编译的文件变得更难(更难),从而难以获得密钥?

我是用c/c ++编写程序的唯一选择吗?因为如果是这样的话,我唯一的选择就是C++ Builder,因为它甚至可以尝试观察(并且更少学习)MFC/OWL代码; 我的意思是:我几乎无法想到有人喜欢MFC/OWL编程.事实上,我认为大会可能对今天的编程世界更感兴趣.

所以,在这里,我想找到一个可以更好地解释我的方法来安全地加密密钥以加密/解密或者使用OpenSSL和c#.甚至是Java.我想确认C/C++是真正使用这些功能的唯一方法,其中一些安全性用于反编译原因(如其他编译编程语言,即Delphi).

如果有人知道一个网站,我可以找到关于我所做的微妙推理的精确信息(特别是在我的分析中显示错误的那个),请告诉我.如果有人能确认我的分析,请确认.如果有人在我的分析中找到任何漏洞,请再次告诉我,以及在哪里可以找到更多信息来统治我以更好地理解这一切.

很抱歉这个哲学计算机编程问题很长.

谢谢,

McNaddy

c# security encryption decompiling

2
推荐指数
1
解决办法
3098
查看次数

什么表达式<> c__DisplayClass9在c#中的含义

我用反编译器来获取C#中某些库的来源.它产生的一个未知(对我来说)构造如下:

Action action = null;
<>c__DisplayClass9 class2;
action = new Action(class2, (IntPtr) this.<OptimizeVisuals>b__6);
Run Code Online (Sandbox Code Playgroud)

之类的东西<>c__DisplayClass9或者(IntPtr) this.<OptimizeVisuals>b__6我只是不能神交.更重要的是,这个表达式不能用C#编译器编译,所以我需要提出更友好的东西.尝试谷歌这部分,但没有运气.你能给我一些提示吗?它似乎与匿名方法有关,但这是我最好的猜测.

提前致谢.

编辑:也许我最初的问题不是很清楚我需要实现什么.所以重新强调:我需要将提到的代码转换为普通的C#代码,执行与反编译之前相同的操作.我的任务是改变我正在反编译的库中的某些东西,同时保持其他功能(如上面提到的)完好无损.这对我来说非常重要,所以如果有人能帮助我,我真的很感激.

c# decompiling

2
推荐指数
1
解决办法
297
查看次数

反编译程序集 - 不寻常的代码

我使用ILSpy反编译了一个程序集,特别是一个类引起了我的注意:

public class CustomTextStream : NetworkStream
{
    private EventHandler<CustomEventArgs> someEvent;
    public event EventHandler<CustomEventArgs> SomePublicEvent
    {
        add
        {
            EventHandler<CustomEventArgs> eventHandler = this.someEvent;
            EventHandler<CustomEventArgs> eventHandler2;
            do
            {
                eventHandler2 = eventHandler;
                EventHandler<CustomEventArgs> value2 = 
                    (EventHandler<CustomEventArgs>)Delegate.Combine(eventHandler2, value);
                eventHandler = 
                    Interlocked.CompareExchange<EventHandler<CustomEventArgs>>(
                    ref this.someEvent, value2, eventHandler2);
            }
            while (eventHandler != eventHandler2);
        }
        remove
        {
            // similar stuff...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在代码中,似乎私有委托用于触发实际事件:

if (something != null && somethingElse != 0)
{
    this.someEvent(this, new CustomEventArgs(someArg));
}
Run Code Online (Sandbox Code Playgroud)

问题:假设某些"编译/反编译魔法"没有发生,有人可以猜出这个自定义访问器背后的想法是什么吗?我对IL不是很熟悉,顺便说一下......

(旁注:应用程序是多线程的,显然利用网络.)

.net c# events decompiling ilspy

2
推荐指数
1
解决办法
695
查看次数

编译器可以优化汇编中的函数前导码吗?

我正在尝试为x86可执行文件构建一个反编译器,并且想知道我是否可以安全地假设函数前导/序言将保持不变.是否有可能编译器可以将它们优化出组件?

x86 assembly decompiling x86-64

2
推荐指数
1
解决办法
173
查看次数

为什么不同的Java反编译器显示不同的源代码?

我试图通过反编译.class文件来了解Java编译器的工作原理.我使用了Java反编译器(http://jd.benow.ca/)和showmycode(http://www.showmycode.com/)它们在.java文件中显示了不同的源代码.为什么?我应该相信哪一个.

.java文件

class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello, World!");
    }
}
Run Code Online (Sandbox Code Playgroud)

.class文件由java反编译器解编译:

import java.io.PrintStream;

class HelloWorld
{
  public static void main(String[] paramArrayOfString)
  {
    System.out.println("Hello, World!");
  }
}
Run Code Online (Sandbox Code Playgroud)

.class文件由showmycode解编译

import java.io.PrintStream;
class HelloWorld {
   HelloWorld() {
   } 
   public static void main(string args[]) 
   {
       system.out.println("Hello, World!"); 
   }
}
Run Code Online (Sandbox Code Playgroud)

java compiler-construction decompiling decompiler

2
推荐指数
1
解决办法
417
查看次数