在cmd上执行关于java的反编译

反编译是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中。例如执行如下代码的反编译

 1 public class stringbuffer {
 2     public static void main(String[] args){
 3 StringBuffer s = new StringBuffer("Hello");
 4 System.out.println("修改后的字符串:");
 5 change(s);
 6 System.out.println(s);
 7 System.out.println("倒转后的字符串:");
 8 reverse(s);
 9 System.out.println(s);
10     }
11     public static void change(StringBuffer temp) {
12         temp.append("  World!! ").insert(0,"MRMr.Song ").delete(0,2);
13
14     }
15     public static void reverse(StringBuffer temp) {
16         temp.reverse();
17     }
18 }
19 //.append()相当于字符串的+
20 //insert()有两个参数,第一个是插入的位置第二个插入的元素或者内容
21 //delete()有两个参数分别是删除的起始和终止位置
22 //reverse倒转

结果如图

在过程中先要切换磁盘,因为不能跨盘执行,然后更换目录,在用javac执行.java程序,在用java执行源文件,最后用javap执行.class文件就可以看到反编译结果,看到了程序执行过程中的方法顺序,有利于自己的编程,如果是别人的程序,则更有利于了解别人程序的构造,为自己所利用

原文地址:https://www.cnblogs.com/tkg1314/p/11684220.html

时间: 2024-10-11 01:40:31

在cmd上执行关于java的反编译的相关文章

只上传APK而不进行反编译,在服务器集成第三方SDK。是如何实现的

============问题描述============ 前提:上传的APK中以及接入了服务器接入方提供的统一接口调用代码. 本地将游戏打包好APK后,直接上传这个APK.然后服务器端会将第三方SDK自动集成到APK中, 使上传的这个APK自动集成了第三方渠道的SDK. 一般想到的做法是将上传的APK进行反编译成工程,然后将SDK集成到工程中,再进行编译打包签名生成APK. 但是有的接入平台说拿到APK后不用进行反编译就能集成第三方SDK. 百思不得其解他们是如何做到的,到底是什么原理.(排除动

java学习总结(16.05.08)在windows下使用cmd命令行对java文件进行编译和执行

windows下利用cmd命令行可以调用jdk里的javac.exe和java.exe对java文件进行编译和执行,前提是jdk已成功安装并正确配置相关环境变量(jdk安装与环境变量的配置方法:http://blog.csdn.net/qq_32099621/article/details/51339868) 下面来说一下windows下如何使用cmd命令行来编译执行java文件 首先找到需要编译和执行的java文件 这里我要编译和执行这个java文件 按组合键win+r调出"运行",

JAVA代码反编译笔记

最近有个朋友说有个java弄的软件是从朋友处拿来的,由于进行了网卡地址绑定,不修改网卡地址无法使用,叫我看看有无办法破解,之前都很少玩这些东西,本着帮忙的心态,尝试了下,便有了一下的笔记内容. 1.使用jd-gui进行反编译,找到核心校验代码,将该b.class文件单独从jar包中抽离出来,由于该jar包编译打包时采用加密混淆,是无法直接使用的,而且代码非常难读懂,也只能将就着看了: 2.将包含b.class的jar包通过winrar解压工具直接打开,根据包名路径找到b.class然后直接删掉里

APK中java代码反编译

Android APK中的Java代码可以被反编译到什么程度主要看APK的加密程度. 第一种情况:无混淆无加密无加壳.直接利用Dex2jar和JD-GUI可把源码从APK里抠出来,代码逻辑清晰,基本上做到可复用,只是资源文件的引用需要计算一下. 第二种情况:混淆.通常是利用Proguard做的防护.因为是对jar做的不可逆混淆(除非有mapping),因此不能还原成原来的代码.但是代码结构,代码逻辑一致,只要花长时间对代码进行梳理一样可找准核心代码,解密方法跟第一种一致. 第三种情况:加密.这里

java常见反编译工具

1.Java反编译插件 -- Jadclipse JadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到eclipse的plugins目录下,然后修改window -> Preferences -> Java -> JadClipse 下的Path to decompiler ,如:C:\pin\jadnt158\jad.exe,最后在Windows -> Perference -> General ->

cmd上执行java命令 - Could not find or load main class

成功的安装了JDK和Eclipse后,在开发测试Java工程中,很少会遇到开发环境问题. 这都归功于Eclise通过工程(project)和包(package)把这些管理好. 但偶尔在命令行下编译和运行Java文件时,还会遇到如下错误:(以下示例都是在Win7上进行)D:\temp> java Tmp 有时java源程序中package设置不当也会导致上述错误.1. 在java源文件开头没有包声明语句 package; D:\temp> javac Tmp.javaD:\temp> ja

Java 批量反编译class文件,并保持目录结构

jad -o -r -d d:\src -s java C:\Users\spring\Desktop\egorder3.0\WEB-INF\classes\**\*.class -o - overwrite output files without confirmation (default: no) 无需确定覆写文件 -r - restore package directory structrure 恢复包目录结构 -s - output file extension (by default

java防止反编译之proguard混淆代码

proguard5.3下载地址:http://down.51cto.com/data/2316123 从eclipse中导出工程的jar包(这个就不详细说了) 安装proguard后打开bin目录下的proguardgui.bat启动proguard如下图所示: 点击Input/Output,设置输入输出的jar包,input就是原jar,output就是混淆后的jar. 5.点击Input/Output中的add,添加该工程用到的jar,包括jre,以及web-info下的lib中的所有jar

如何保护java程序不被反编译

Java是一种 跨平台的.解释型语言 Java 源代码编译中间“字节码”存储于class文件中.Class文件是一种字节码形式的中间代码,该字节码中包括了很多源代码的信息,例如变量名.方法名 等.因此,Java中间代码的反编译就变得非常容易.目前市场上有许多免费的.商用的反编译软件,都能够生成高质量的反编译后的源代码.所以,对开发人员 来说,如何保护Java程序就变成了一个非常重要的挑战.下面我们就结合实例讨论 保护Java程序的基本方法然后对代码混淆问题进行深入研究,最后结合一个实际的应用程序