最近有个朋友说有个java弄的软件是从朋友处拿来的,由于进行了网卡地址绑定,不修改网卡地址无法使用,叫我看看有无办法破解,之前都很少玩这些东西,本着帮忙的心态,尝试了下,便有了一下的笔记内容。

1、使用jd-gui进行反编译,找到核心校验代码,将该b.class文件单独从jar包中抽离出来,由于该jar包编译打包时采用加密混淆,是无法直接使用的,而且代码非常难读懂,也只能将就着看了;

2、将包含b.class的jar包通过winrar解压工具直接打开,根据包名路径找到b.class然后直接删掉里面的b.class;

3、用eclipse建立一个java工程,将处理过的jar包加到项目的引用路径中,再根据b.class所在的包建立一个相同的包,再在包里面建一个b.java文件,将jd-gui反编译后的代码贴进去,然后根据提示修改,如果运气好的话很快修改完,并且编译通过,而且可以使用。我是属于运气不好的,碰到不能使用的。就有了下面的步骤;

4、如果运气好的话编译通过,能正常使用的情况,在将jar包用winrar打开,找到b.class所在的包,将编译修改后的class文件压缩进去,放到项目中即可运行了;

5、运气不好,跑起来居然报错,说缺少方法,网上搜了下说jad反编译是不完整的,有bug,没法子,只能自己去看java的字节码了,

6、将分离后的b.class放在“d:\decode\” 文件夹中,然后调用cmd窗口,先切换到“d:\decode\”目录,

然后输入命令:javap b.class > d:\decode\b1.java,javap将会根据b.class生成b的所有方法属性,包括公有,私有的(主要用于对比缺少的方法);

再输入命令:javap -verbose b.class > d:\decode\b2.java,javap将会根据b.class生成对应的java字节码,先通过b1.java找出jd-gui反编译后缺少的方法,

然后根据b2.java中找到对应的方法,然后看里面的JVM是怎么跑的,将方法还原即可。

至此结束。。。。。

附上java字节码的一些解释:

http://blog.csdn.net/ygc87/article/details/12953421

http://blog.163.com/lihui_2000/blog/static/665969402012194530772/

http://tieba.baidu.com/p/1947057129

JAVA代码反编译笔记的更多相关文章

  1. APK中java代码反编译

    Android APK中的Java代码可以被反编译到什么程度主要看APK的加密程度. 第一种情况:无混淆无加密无加壳.直接利用Dex2jar和JD-GUI可把源码从APK里抠出来,代码逻辑清晰,基本上 ...

  2. Java代码的编译与反编译那些事儿

    原文:Java代码的编译与反编译那些事儿 编程语言 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language).编程语言(Programming Language) ...

  3. 什么是Java代码的编译与反编译?(转)

    转自:http://java.tedu.cn/ask/203119.html Java代码的编译与反编译 一.什么是编译 1.利用编译程序从源语言编写的源程序产生目标程序的过程. 2.用编译程序产生目 ...

  4. Atitti.java android反编译解决方案-----虚拟机方案

    Atitti.java android反编译解决方案-----虚拟机方案 哈哈,终极解决方案是虚拟机...c++也可以反编译为汇编代码,但无需担心,因为读懂汇编太麻烦..只要不能拿到c++源码就可.. ...

  5. C#代码反编译 得到项目可运行源码

    C#代码反编译 得到项目可运行源码 摘自:http://www.cnblogs.com/know/archive/2011/03/15/1985026.html 谈到"C#代码反编译&quo ...

  6. GraalVM最佳实践,使用Java开发CLI、Desktop(JavaFX)、Web(SpringBoot)项目,并使用native-image技术把Java代码静态编译为独立可执行文件(本机映像)

    原创文章,转载请注明出处! 源码地址: Gitee Gtihub 介绍 GraalVM最佳实践,使用Java开发CLI.Desktop(JavaFX).Web(SpringBoot)项目,并使用nat ...

  7. 【原创】Java批量反编译利器(jd-gui)介绍

    Java反编译利器(jd-gui)介绍 当要做白盒测试或安全测试时,我们需要借助工具扫描被测代码,相信大家都遇到过没有源代码,而需要反编译的情形吧,也可能大家用过jad工具,我这里介绍下方便的工具jd ...

  8. java常见反编译工具

    1.Java反编译插件 —— Jadclipse JadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到eclipse的plugins ...

  9. (转)unity3D 如何提取游戏资源 (反编译)+代码反编译

    原帖:http://bbs.9ria.com/thread-401140-1-1.html 首先感谢 雨松MOMO 的一篇帖子 教我们怎么提取 .ipa 中的游戏资源.教我们初步的破解unity3d资 ...

随机推荐

  1. 解决linux下python多版本兼容问题?

    环境:CentOS 7(7下默认安装python2.7) Pyhon3在CentOS中需要依赖一些其他的包,我们一次性用yum安装一下: yum install zlib-devel bzip2-de ...

  2. appium 自动化测试案例

    原文地址http://www.cnblogs.com/tobecrazy/p/4579631.html 原文地址http://www.cnblogs.com/tobecrazy/ 该博主有很多干货,可 ...

  3. python16_day18【Django_Form表单、分页】

    一.表单 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 1.Form类 创建Form类时,主 ...

  4. (转)Nginx反向代理设置 从80端口转向其他端口

    from :http://www.cnblogs.com/wuyou/p/3455381.html Nginx反向代理设置 从80端口转向其他端口   反向代理(Reverse Proxy)方式是指以 ...

  5. VS2017 下使用 git. git服务器使用gitblit

    注意事项: 创建的GIT不要包括有中文, 不然会不成功的..... gitblit安装及配置及客户端下载略过...... 可参考:  https://www.cnblogs.com/jeremylee ...

  6. hibernate 关联关系

    <hibernate-mapping package="com.srts.system.domain"> <class name="Sys_UserRo ...

  7. Java程序设计基础

    Java程序设计基础

  8. hadoop28---注解

    spring.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="ht ...

  9. CSS 一个完整的例子

    My first web page What this is A simple page put together using HTML. I said a simple page put toget ...

  10. python——动态类型简介

    动态类型简介 类型属于对象,而不是变量 每一个对象都有两个标准的头部信息:类型标志符和引用计数器. 对象的垃圾收集,就是通过引用计数器实现的.可以在脚本中任意使用对象而不需要考虑释放内存空间. 循环饮 ...