2015年12月7日 星期一

7 open source Java anti compilation tools 7 款开源 Java 反编译工具 7 款開源 Java 反編譯工具

7 open source Java anti compilation tools 7 款開源 Java 反編譯工具







Automating Removal of Java Obfuscation



  • 80x86 Win32 Disassembler DLL 1.2
  • Hopper Disassembler 1.0.1
  • Udis86 Disassembler for x86 and x86-64 86.1.7
  • APNG Disassembler 2.4
  • PE Explorer 1.99 R3
  • emu8086 2.10
  • PEBrowse Professional Interactive 7.32
  • Visual DuxDebugger 2.8
  • PEBrowseDbg64 Interactive 2.9
  • deadener 1.17
  • PEBrowse64 Professional 2.1
  • IDA PRO for Linux 6.0
  • IDA PRO for Mac 6.0
  • DJ Java Decompiler 3.9.9.91
  • Easy JAVA to Source Converter 1.6

http://www.program-transformation.org/Transform/WebHome
這裡很多資料,以下簡
Program transformation techniques are used in a many areas of software engineering ranging from program synthesis, via program optimization and program refactoring, to reverse engineering and documentation generation. Many theories, tools and applications have been developed over the last 30 years. Often the results of these efforts are used only in the community that developed them.
Program-transformation.org is dedicated to collecting, organizing and disseminating information about all aspects of program transformation in order to share results across communities. Such an effort cannot possibly be achieved by a static web site. Therefore, this site is based on TWiki, a system for collaborative web development. This means that you cannot only read information about program transformation, but also contribute to this site by editing pages and by adding new pages. OneMinuteWiki explains how wiki works. -- EelcoVisser & ArieVanDeursen

http://www.program-transformation.org/Transform/DecompilationResources

Decompilation Resources
Program-Transformation.Org: The Program Transformation Wiki
This page contains links to projects peripherally related to decompilation.
  • Binary files
  • The format of Executable files
  • Tool generator tools
  • Resource extractors
  • Fenris tools
  • Binary file decompilation
  • Java and .NET related
  • Delphi related
  • Conferences and workshops
  • Decompilation-related Theses
  • Decompilation Papers
  • Decompilation Books
  • Online Collaborative Books
  • Miscellaneous



The format of Executable files
  • Win32PE (An In-Depth Look into the Win32 Portable Executable File Format)
  • Pc Exe Format from The Interrupt List by Ralph Brown
  • Ne Format (the NE (New Executable) format (16 bit Windows))
  • ExeFmt A description of the New Executable (NE) 16-bit Windows format.
  • Pe Dump (PE dump program)
  • VXPE (VX Portable Executable Viewer)
  • PE Explorer (Commercial tool)
  • Manuals on several executable file formats (OMF, PE, ELF, Dwarf, etc)


Decompilation-related Theses
  • Reverse Compilation Techniques, C. Cifuentes, Queensland University of Technology PhD thesis, 1994.
  • Static Single Assignment for Decompilation, M. Van Emmerik, University of Queensland PhD thesis, 2007. Also available as gzipped postscript.
  • WYSINXYX: What You See is Not What You Execute, Gogul Balakrishnan, University of Wisconsin-Maddison PhD thesis, 2007. Uses IDA Pro and custom code to analyse x86 binaries for security problems.
  • Designing an Object-Oriented Decompiler, D. Eriksson, Blekinge Institute of Technology Masters thesis, 2002. See also the Desquirr IDA Pro plugin.
  • Proving Program Refinements and Transformations, M. Ward, Oxford University PhD thesis, 1989. This is the basis for Ward's future work, which is able to transform assembly language to C on an industrial scale.


Miscellaneous
  • Hex-rays decompiler plugin. IDA Pro has a commercial decompiler plugin now.
  • Hexblog, by Ilfak Guilfanov (author of IDA Pro), has a decompilation category. Other categories, such as the IDA Pro category, are often of interest.
  • QuantumG's blog was mostly about decompilation, especially the earlier entries. Some very good information.
  • Windows Source Project, maintained by Clive Turvey.
  • List of Debuggers and Disassemblers (from http://www.tech-faq.com). Also their "What is a Decompiler?" page.
  • Free Disassemblers, Decompilers, Binary / Hex Editors and Viewers (from http://www.thefreecountry.com).
  • x86 Assembly Language FAQ
  • The Redo Project Archive.
  • You can use the dllman32 Windows Dynamic Link Library Investigator for finding dependencies among DLL's.
  • The Softpanorama page on Decompilation and Decompilers. Softpanorama describes itself as "resources for the independent study in computer science and programming".
  • The Code Breakers Journal.
  • Bob Stout posted a short history of PC C compilers.
  • http://www.codesites.com (development related links)
  • Fravia's page of Reverse engineering has a cracker's viewpoint, including a page on the legality of reverse engineering. The URL keeps changing; just search for it.
  • ProgramObfuscation could be considered a defence to decompilation.
  • DecompilationUrls (ordered alphabetically by URL).
  • The static recompilers Yahoo group have the goal of statically translating binary code (mostly old arcade games) from one architecture to another. There is a tool called Orion that emits a sort of unrolled interpreter of input machine instructions into C code. It's basically static binary translation, so the output is hard to read, and the original machine's instructions are very visible. Works on code from Z80, 6502, and a few other architectures.
  • Unconfirmed: John Banning and Hans Pufal's NLZ program, said to be part of Hunter Systems's XDOS suite. It was reportedly able to decompile PC applications and help port them to Unix workstations. Original contact: Hunter Systems, since acquired by Miltiport of Mountain View, CA, USA.

Search
  • Search freshmeat for "decompiler" or "decompile".
  • Search SourceForge for "decompiler" or "decompile".
  • Search Google Scholar (in Beta at the time of writing) for "decompiler" or "decompilation".
  • Search CiteSeer.IST for "decompiler" or "decompilation".



Java Decompilers
Program-Transformation.Org: The Program Transformation Wiki

Decompiler front ends
Some decompilers are just GUI front-ends for a console (text) based decompiler. Some are listed in this table.
Front end (GUI) decompiler Back end decompiler (engine)
  • Cavaj Jad
  • Decafe Pro Jad
  • DJ Java Decompiler Jad
  • Frontend Plus Jad
  • JadClipse (Eclipse plugin) Jad
  • BTJ (Back To Java) JODE
  • jEdit's JavaInsight plugin JODE


如何得知 exe dll 執行檔 呼叫了 哪些 dll 動態連結檔

  • Deployment in Visual C++
  • Deployment Concepts
  • Understanding the Dependencies of a Visual C++ Application
  • Determining Which DLLs to Redistribute
  • Choosing a Deployment Method
  • Redistributing Visual C++ Files
  • Deployment Examples
  • Redistributing Web Client Applications
  • ClickOnce Deployment for Visual C++ Applications
  • Running a C++ /clr Application on a Previous Runtime Version

  • https://msdn.microsoft.com/en-us/library/ms235265.aspx
  • Understanding the Dependencies of a Visual C++ Application

  • To determine which Visual C++ libraries an application depends on, you can view the project properties. (In Solution Explorer, right-click on the project and choose Properties to open the Property Pages dialog box.) You can also use the Dependency Walker (depends.exe), which gives a more comprehensive picture of the dependencies.
  • In the Property Pages dialog box, you can examine various pages under Configuration Properties to understand the dependencies. For example, if your project uses the MFC libraries and you choose Use of MFC, Use MFC in a Shared DLL on the Configuration Properties, General page, your application at run time depends on MFC DLLs such as mfc.dll. If your application doesn't use MFC, it might depend on the CRT library if you choose a Runtime Library value of Multi-threaded Debug DLL (/MDd) or Multi-threaded DLL (/MD) on the Configuration Properties, C/C++, Code Generation page.
  • A more comprehensive way to determine which DLLs your application depends on is to use Dependency Walker (depends.exe) to open the application. You can download the tool from the Dependency Walker web site.
  • By using depends.exe, you can examine a list of DLLs that are linked to the application at load time, and a list of its delay-loaded DLLs. If you want to get a complete list of DLLs that are dynamically loaded at run time, you can use the profiling feature in depends.exe to test the application until you're sure that all code paths have been exercised. When you end the profiling session, depends.exe shows which DLLs were dynamically loaded during run time.
  • When you use depends.exe, be aware that a DLL might have a dependency on another DLL or on a specific version of a DLL. You can use depends.exe on either the development computer or on a target computer. On the development computer, depends.exe reports the DLLs that are required to support an application. If you have trouble getting an application to run on a target computer, you can copy depends.exe to it and then open the application in the tool so that you can determine whether any required DLLs are missing or incorrect.
  • When you know which DLLs your application depends on, you can determine the ones that you have to redistribute with your application when you deploy it to another computer. In most cases, you don't have to redistribute system DLLs, but you may have to redistribute DLLs for Visual C++ libraries. For more information, see Determining Which DLLs to Redistribute.
  • See Also
  • Deploying Native Desktop Applications (Visual C++)

  • c++ runtime library explorer load dll list Dependency 


  •  Dependency Walker is a free utility that scans any 32-bit or 64-bit Windows module (exe, dll, ocx, sys, etc.) and builds a hierarchical tree diagram of all dependent modules. For each module found, it lists all the functions that are exported by that module, and which of those functions are actually being called by other modules. Another view displays the minimum set of required files, along with detailed information about each file including a full path to the file, base address, version numbers, machine type, debug information, and more.





decompiler Disassembler Debugger exe dll ocx shell32 exe dll ocx sys scr

  • Tools to work cooperatively on the same binary

http://reverseengineering.stackexchange.com/questions/1347/tools-to-work-cooperatively-on-the-same-binary

  • BMP file format 


The BMP file format, also known as bitmap image file or device independent bitmap (DIB) file format or simply a bitmap, is a raster graphics image file format used to store bitmap digital images, independently of the display device (such as a graphics adapter), especially on Microsoft Windows[2] and OS/2[3] operating systems.
https://en.wikipedia.org/wiki/BMP_file_format

binary file format structures from flat binary header bitmap