反编译Apk得到Java源代码(apk xml源文件)

反编译Apk得到Java源代码(apk xml源文件)
反编译Apk得到Java源代码(apk xml源文件)

1、下载apktool,可以去Google的官方下载,地址:

https://www.360docs.net/doc/d81968683.html,/p/android-apktool/得,apktool1.3.2.tar.bz2和

apktool-install-windows-2.2_r01-3.tar.bz2两个包都要下。解压apktool1.3.2.tar.bz2得到apktool.jar放到 C:\Windows ,解压apktool-install-windows-2.2_r01-3.tar.bz2到C:\Windows下,记住了,解压后的几个文件放到同一文件夹。

2、打开命令窗口(开始 > 运行,输入cmd,回车。)进入到apktool.bat的文件夹里。

输入:

apktool d C:\***.apk C:\***文件夹

(命令行解释:apktool d 要反编译的文件输出文件夹)

4、如果出了以下的问题:

Exception in thread "main" https://www.360docs.net/doc/d81968683.html,ng.UnsupportedClassVersionError: Bad version n umber in .class file

at https://www.360docs.net/doc/d81968683.html,ng.ClassLoader.defineClass1(Native Method)

at https://www.360docs.net/doc/d81968683.html,ng.ClassLoader.defineClass(ClassLoader.java:620)

at

java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12

4)

at https://www.360docs.net/doc/d81968683.html,.URLClassLoader.defineClass(URLClassLoader.java:260)

at https://www.360docs.net/doc/d81968683.html,.URLClassLoader.access$100(URLClassLoader.java:56)

at https://www.360docs.net/doc/d81968683.html,.URLClassLoader$1.run(URLClassLoader.java:195)

at java.security.AccessController.doPrivileged(Native Method)

at https://www.360docs.net/doc/d81968683.html,.URLClassLoader.findClass(URLClassLoader.java:188)

at https://www.360docs.net/doc/d81968683.html,ng.ClassLoader.loadClass(ClassLoader.java:306)

at https://www.360docs.net/doc/d81968683.html,uncher$AppClassLoader.loadClass(Launcher.java:268)

at https://www.360docs.net/doc/d81968683.html,ng.ClassLoader.loadClass(ClassLoader.java:251)

at https://www.360docs.net/doc/d81968683.html,ng.ClassLoader.loadClassInternal(ClassLoader.java:319)

版本问题,装了个jre6,在360中的软件管家可以找到的,记得装完后配置path路径,果然,ok。

注:此编绎方式可以查看apk的xml文件,也可以查看到里面的源图片文件(这个解压后也可以看到),也可以看到class文件(只是没有jd-gui明了查看),可以参考之前我发布的查看class文件的博文。

最全的脱壳,反编译 ,汇编工具集合

本文由nbdsb123456贡献 最全的脱壳,反编译,汇编工具集合 破解工具下载连接 1 调试工具 Ollydbg V1.10 正式汉化修改版+最新最全插件2.02m SmartCheck V6.20 20.54M Compuware SoftICE V4.3.1 精简版10.57M Compuware (SoftICE) Driver Studio V3.1 完全版176.52M TRW2000 V1.22 汉化修改版+全部最新插件1.47Mforwin9X 动态破解VB P-code程序的工具 WKTVBDebugger1.4e 2 反汇编工具 W32Dasm是一个静态反汇编工具,也是破解人常用的工具之一,它也被比作破解人的屠龙刀。 W32Dasm10.0修改版是经Killer在W32Dasm8.93基础上修改的,修改后的W32Dasm功能更强大,能完美显示中文字符串及VB程序,内含16进制编辑器,破解修改软件更容易,真可谓是反汇编极品! W32Dasm V10.0 汉化增强版419 KB 反汇编工具老大,功能大大的胜过了w32dasm。学习加解密的朋友不可错过。即使不用你也要收藏一份。:) IDA Pro Standard V4.60.785 零售版 + Flair + SDK33.08 MB C32Asm是集反汇编、16进制工具、Hiew修改功能与一体的新工具。强烈推荐! C32Asm V0.4.12 1.97 MB C32Asm V0.4.12 破解补丁 650 KB 3 反编译工具 Delphi DeDe3.50.04 Fix增强版5.3 MB 4 PE相关工具 PE编辑工具 Stud_PE1.8 PE工具,用来学习PE格式十分方便。 https://www.360docs.net/doc/d81968683.html,/tools/PE_tools/Editor/stdupe/Stud_PE1.8.zip ProcDump32 v1.6.2 FINAL Windows下的脱壳工具并可进行PE编辑。可惜不更新了,己过时,现阶段一般只用来作为PE编辑工具使用。 Win9x/2K 大小:161K https://www.360docs.net/doc/d81968683.html,/tools/PE_tools/Editor/ProcDump/PDUMP32.ZIP LordPE DLX 强大的PE编辑工具,有了它,其它的相关工具你可以扔进垃圾堆了。 https://www.360docs.net/doc/d81968683.html,/tools/PE_tools/Lordpe/LPE-DLX.ZIP PEditor 1.7 可修复PE文件头,一款相当方便的PE文件头编辑工具。 417K PE Tools v1.5.4 另一款PE编辑工具。 https://www.360docs.net/doc/d81968683.html,/tools/PE_tools/Editor/PEditor/PEDITOR.ZIP 输入表重建工具 ImportREC v1.6 FINAL 各类插件可以手工重建Import表,支持UPX、Safedisc 1、PECompact、PKLite32、Shrinker、ASPack, ASProtect、tELock等。 160K

java利用xml导出word(占位符替换)

package cn.action; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import sun.misc.BASE64Encoder; public class XmlWord { private Map dataMap = new HashMap(); public Map getDataMap() { return dataMap; } public void setDataMap(Map dataMap) { this.dataMap = dataMap; } /** * 设置标识值 * @param tagList 标识 * @param dataList 数据 * @param dataMap */ public void setData(List tagList,List dataList){

JaxbContext生成xml文件或java类对象转化注解

JAXB(Java API for XML Binding),提供了一个快速便捷的方式将Java对象与XML进行转换。在JAX-WS(Java的WebService规范之一)中,JDK1.6 自带的版本JAX-WS2.1,其底层支持就是JAXB。 JAXB 可以实现Java对象与XML的相互转换,在JAXB中,将一个Java对象转换为XML 的过程称之为Marshal,将XML转换为Java对象的过程称之为UnMarshal。我们可以通过在Java 类中标注注解的方式将一个Java对象绑定到一段XML,也就是说,在Java类中标注一些注解,这些注解定义了如何将这个类转换为XML,怎么转换,以及一段XML如何被解析成这个类所定义的对象;也可以使用JAXB的XJC工具,通过定义schema的方式实现Java 对象与XML的绑定(这个下次研究)。 下面来了解一下如何通过标注注解来完成 Marshal 和 UnMarshal 的过程。我用的是JAXB2_20101209.jar ,可以到[url]https://www.360docs.net/doc/d81968683.html,/[/url] 下载最新版本。 首先看个小例子 定义一个java类 Java代码 package com.why.jaxb; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class People { public String id = "001"; public String name = "灰太狼"; public int age = 26; } Java To XML(Marshal) Java代码 package com.why.jaxb; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; public class Java2XML { /** * @param args * @throws JAXBException */ public static void main(String[] args) throws JAXBException { JAXBContext context = JAXBContext.newInstance(People.class);

反编译详细教程

.去震动教程.时间居中教程,时间显示到秒且居中 在通知栏增加模拟时钟透明状态栏代码修改 字体颜色修改关于运营商图标修改 可以ctrl+F,按需搜索 一:去震动教程: 一、首先是配置编译和反编译环境,具体方法如下: 1、在电脑上下载安装JRE(https://www.360docs.net/doc/d81968683.html,/file/clif5w53)。其次下载好apk反编译工具 (apk反编译软件.rar(2.43 MB, 下载次数: 5756) ) 2、在系统环境变量Path里加入java.exe所在路径。 右键我的电脑--属性--高级系统--设置--环境变量--系统环境变量,里面的path变量项,值里面添加java的所在路径(例如“;C:\Program Files\Java\jre6\bin”) 3、将反编译软件解压出来,为了便于使用,最好放在C:\Windows目录下。 二、提取并反编译framework-res.apk文件 1、手机必须root,先用RE管理器将/system/framework文件夹下的文件framework-res.apk复制到/sdcard,然后复制到电脑(为了方便后面的操作,建议将文件放到电脑某个盘符的根目录下。例如:e:\framework-res.apk)

2、反编译framework-res.apk文件。具体方法运行cmd.exe(如图) 然后在出来的命令提示行中输入以下命令:apktool+空格d+空格+framework-res.apk路径+空格+反编译后文件存放路径,比如文件放入d盘根目录则命令为:apktool d d:\framework-res.apk d:\framework-res(如图)(此时反编译出来的文件放在d盘framework-res文件夹下) 三、修改去震动相关的xml文件 一般framework-res\res\values\arrays.xml就是我们要修改的对象。用xml编辑器(xml 编辑器.rar(345.03 KB, 下载次数: 3223) )打开这个文件。修改如图:

java,解析想xml,生成xml,步骤,原理

使用要导入dom4j-1.6.1.jar文件 我的dom4j文件在 讲解 生成xml 1:先通过DocumentHelper类的.createDocument()方法生成Document文件2:接着通过DocumentHelper类的createElement("根节点字符串形式")创建根节点 3:通过通过生成的Document的实例的setRootElement(根节点)设置根节点 4:接着可以通过Document的实例的getRootElement()方法得到根节点 5:接着通过根节点(Element类的实例)的.addElement("子节点的字符串形式")添加子节点 6:通过节点类(Element类的实例)的setText("字符串“)设置节点对应的值 7:通过Document类的实例的.asXML();的方式的得到xml字符串; (注意:xml 是字符串String的形式。 可以设置几个同名的根节点(username1<username2) 解析时通过Elment的.elementIterator("user");方法得到迭代器 ) 解析xml 1:通过new SAXReader();得到SAXReader的一个实例 2:通过StringReader(参数是字符串)将xml字符串转化为一个Reader字符输入流 3:通过SAXReader的实例.read(参数是个Reader)得到得到Document 4:通过Document的getRootElement()方法得到根节点(Element类的实例) 5:通过根节点的element("子节点的字符串形式")方法得到子节点 (若有多个同名子节点通过根节点的.elementIterator("user")得到同名节点迭代器)6:通过节点的getTxt();方法得到节点的值 生成xml 例子: private static Document constructDocument()//此处会被下面调用 { Document document = DocumentHelper.createDocument(); Element root = DocumentHelper.createElement("message"); document.setRootElement(root); return document; } document文件。结果是下面的形式

反编译FLASH利器SWF DECOMPILER使用教程

反编译Flash利器SWF Decompiler使用教程 1、软件功能介绍 SWF Decompiler 是一款用于浏览和解析Flash动画(.swf文件和.exe文件)的工具。它能够将flash动画中的图片、矢量图、字体、文字、按钮、影片片段、帧等基本元素完全分解,还可以对flash 影片动作(Action)进行解析,清楚的显示其动作的代码,让您对Flash 动画的构造一目了然。你可以将分解出来的图片、矢量图、声音灵活应用于FLASH MX 2004 中,让你也可以做出大师级的作品! 2、认识SWF Decompiler 的界面 SWF Decompiler 的界面如(图1)所示:

图1 SWF Decompiler 的界面比较简单,除了上面的菜单栏和工具栏外,左边是文件查看窗口,中间是影片预览窗口和信息窗口,右边是资源窗口,下面简单介绍一下工具栏。 由于菜单命令与工具栏的功能一样,这里只介绍工具栏的作用。工具栏包括共有9个工具(参看图1 从左至右): ①快速打开:不用解释吧^o^; ②导出fla:导出反编译后的 .fla格式源文件; ③导出资源:导出反编译后的Flash中的资源,如图片、音频、Flash片段等; ④文件浏览:显示或隐藏文件浏览窗口; ⑤信息窗口:显示或隐藏信息窗口; ⑥资源窗口:显示或隐藏资源窗口; ⑦影片信息:显示当前的Flash影片信息; ⑧背景颜色:设置Flash及资源预览窗口的背景颜色; ⑨动作脚本查看方式:共有3个查看方式选择,源码、伪码、原始数据; 3、SWF Decompiler 的操作方法

①打开Flash影片。打开SWF Decompiler 后在文件夹浏览窗口中找到要处理的Flash所在的文件夹(当然也可用“快速打开”工具)并单击,然后在文件选择窗口中点击要处理的Flash(可以是swf格式或exe格式),此时开始在预览窗口中播放影片。 如果想浏览窗口大一些,可点击[文件浏览]和[信息窗口]工具,隐藏了这两个窗口,浏览窗口便自动扩大。 ②导出SWF源文件(fla格式)。在右侧的资源窗口中点击该文件名前面的“+”号(见图2),软件便开始分析当前的SWF文件,稍等候就完成分析并以树形结构分门别类显示出SWF文件的内部结构来。如图3所示: 图2 图3 然后点击上面的[导出fla]按钮,在“导出fla”选项窗口中,选择好导出路径和其他选项,如果选择“自动用FLASH打开”,则会直接启动FLASH MX 2004,就可以对导出的fla文件进行编辑操作。

Apk反编译及签名工具使用

Apk反编译及签名工具使用 1) APKtool软件包及签名tool APKtool软件包有2个程序组成:apktool.jar 和aapt.exe 另外提供一个批处理文件:apktool.bat,其内容为: java -jar "%~dp0\apktool.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9 运行apktools.jar需要java环境(1.6.0版本以上)。 apktool.jar用于解包,apktool.jar和aapt.exe联合用于打包。 signapk.jar 用于签名。 2) APK文件的解包 下面以解开Contacts.apk为例。首先把Contacts.apk Copy到当前工作目录下(例:Test)。在DOS下打入命令 apktool d Contacts.apk ABC 这里“d”表示要解码。Contacts.apk是要解包的APK文件。ABC是子目录名。所有解包的文件都会放在这个子目录内。 3) APK文件的打包 在DOS下打入命令 apktool b ABC New-Contacts.apk 这里“b”表示要打包 ABC是子目录名,是解包时产生的子目录,用来存放所有解包后的和修改后的文件。 New-Contacts.apk是打包后产生的新的APK文件。 4) 签名,不签名安装时可能提示如下错误: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES] --- 没有签名,可以尝试test证书;签名方法见下面。

Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES] ---- 已存在签名,但使用证书不对,可以尝试使用其他证书签名。 签名方法:到目录android\build\target\product\security找到证书文件,这里可能会有几种证书, test/shared/platform/media,各种证书使用场景不同,可以自己google一下,因为签名很快而且可任意后续更改签名,可以自己尝试各种不同签名; 这个命令行是使用test证书的例子:java -jar signapk.jar testkey.x509.pem testkey.pk8 YOURAPK.apk YOURAPK_signed.apk YOURAPK_signed.apk就是签完名的apk,去测试一下您重新打包的apk吧。

JavaXML绑定技术样本

Java XML绑定技术 --- 快速操作XML文档 注: 本文系原创, 转载请注明作者 -------- 叶瑞金 /06/10 在开发中, 我们常见XML来存储一些数据。相对于普通的文本文件, XML具 有开放性、支持多语言编码、支持结构性数据等优越性, 我们常见它存储配置 信息, 甚至直接使用它当作数据库使用。 最近由于项目需要, 我对Java XML绑定技术作了些研究, 现在把一些心得 与大家分享一下。 其实用Java读写XML的技术由来已久, 比如Apache的XML API、 xalan、 xerces都是很出名的项目, 都有将近十多年历史了吧。这些API对XML的操作 都是基于XML最底层的DOM和SAX模式, 原来也不算很复杂。我在以前项目中很 多关于配置文件的管理部分都是用这些API来完成的。但不论是用DOM还是SAX, 都要求XML的格式是预先定义好的。也就是说, 如果你已经写好了一份读写XML 的程序, 之后如果这个XML的格式作了修改, 那么你必须修改程序, 以保证能 够正确地从修改后的XML中读写数据。如果XML的格式很复杂, 或者牵涉的XML 文件类型众多, 那么这种修改将是一个浩大的工程。 如果我们能找到一种自动适应XML格式的方法, 能够根据当前XML的格式定 义, 自动地读写XML中的数据, 那么就能够节省我们很多精力和时间。能够把这 种技术称为XML绑定技术(XML Binding), 或者称为Object XML。真的有这样的 程序或框架吗? 我们能够用下面的图示来描述Java XML绑定技术: Person <----------------------------> |----- id<----------------------------> 123 |___ name<----------------------------> tom

java class反编译后的代码还原

javaclass利用jad反编译之后,偶尔回碰到一些不正常的代码,例如: label0:_L1MISSING_BLOCK_LABEL_ 30、JVM INSTR ret 7、JVM INSTR tableswitch 1 3: default 269、JVM INSTR monitorexit、JVM INSTR monitorenter,这些一般是由特殊的for循环、try catchfinally语句块、synchronized语句反编译后产生的。下面,就简单介绍一下,一些反编译后的特殊代码的还原规则。 异常 下面的代码前提是类中有如下属性, Calendar cal = Calendar.getInstance(); 1、Exceptioin的还原 反编译后的代码如下: public boolean f1() { return cal.getTime().after(new Date());Exception e; e; e.printStackTrace(); return false; }还原后的Java代码public boolean f1() { try { return cal.getTime().after(new Date());} catch (Exception e) { e.printStackTrace(); return false; } } 2、finally代码的还原反编译后的Java代码如下: publicbooleanf2(){booleanflag=cal.getTime().after(new Date());

System.out.println("finally"); return flag; Exception e; e; e.printStackTrace(); System.out.println("finally"); return false; Exception exception; exception; System.out.println("finally"); throw exception; }还原后的代码如下: public boolean f2() { try { return cal.getTime().after(new Date());} catch (Exception e) { e.printStackTrace(); return false; } finally { System.out.println("finally"); } } 3、MISSING_BLOCK_LABEL_的还原反编译后的代码 publicObjectf22(){Datedate=cal.getTime(); System.out.println("finally"); return date; Exception e;

java对象直接转换成xml格式

java对象直接转换成xml格式! import java.io.StringWriter;import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.annotation.XmlRootElement;@XmlRootEle ment(name = "Test") public class Test { private String id; private String name; public String getId() { return id; } public void setId(String id) {

this.id = id; } public String getName() { return name; } public void setName(String name) { https://www.360docs.net/doc/d81968683.html, = name; } public static void main(String[] args) throws JAXBException { Test re = new Test(); re.setId("id"); re.setName("name"); StringWriter sw = new StringWriter(); JAXBContext jAXBContext = JAXBContext.newInstance(re.getClass());

图文并茂:反编译E书软件使用教程

图文并茂:反编译E书软件使用教程 ----------霏凡论坛sss888制作 本篇教程主要介绍E书反编译软件的使用方法,让大家从不能保存的E书中获得所需要的文章和图片。 首先感谢制作反汇编电子书工具软件的作者,是他为我们制作了这么好的软件。 下面我们开始介绍软件的用法。 第一:miniKillEBook使用方法 首先是miniKillEBook介绍 MiniKillEBook可以反编译EXE,CHM格式的电子书,但对翻页EXE格式电子书和小说网的EXE格式的电子书无效。 双击图标打开miniKillEBook软件 打开miniKillEBook后,界面如下。 然后找到你要反编译的E书。 我们以红楼望月:《从秦可卿解读<红楼梦>》为例子来反编译。

点击图标打开E书,打开后的界面如下。 用鼠标左键按住不放,拖动光标到E书的界面中, 如果界面没选对会提示下面的对话框。 你需要重新选择E书的界面。选择成功后会变成下面的样子。

然后选择反编译后文件的保存的地方,如下图: 点击按钮,开始反编译E书。成功后的提示如下。

由于前面选择了,现在你就得到了纯文本格式的文件。 如果这个选项不打钩,将得到网页文件

反编译CHM格式电子书的方法 点击图标打开E书,打开后的界面如下。 用鼠标左键按住不放,拖动光标到E书的界面中,如下图:

点击按钮,开始反编译E书。后面的方法同上面,就不做详细介绍了。 好了miniKillEBook用法就介绍到此,下面介绍CtrlN的用法。 第二:CtrlN的用法 由于上面的miniKillEBook软件作者做了限制,只能反编译得到网页文件,还有些E书被屏蔽了鼠标右键,不能获得网页的文本和图片,我们现在讲E书文件中的图片获得的方法。 双击打开CtrlN软件,打开miniKillEBook后,界面如下。 首先设置好CtrlN软件,点击图标,出现下面的配置界面。

jad及小颖反编译专家的用法和使用详解

java反编译工具--jad及小颖反编译专家的用法和使用详解 当下载一个软件是jar格式的,我们可以使用jar2cod这个软件将它转换成cod格式,通过桌面管理器装到 我们的bb上;如果你的电脑上安装了winrar并且没有安装jdk或者其他java开发工具,jar格式的文件的 图标就是一个压缩包的图标,我们可以将它解压,解压后可以看到里面包含了一些class 文件和其他一些 文件,.class后缀名的文件就是java源程序通过编译生成的类文件,而jar是对一个程序中所有需要用到 的类和其他资源打包的结果。如果想深入的了解一下别人的软件是如何开发出来的,可以使用jad这个文 件对class文件进行反编译。最新版的jad是1.5.8,下面我们来说一说jad的使用方法。 前提: 1.系统中安装了jdk; 2.正确的设置了系统的环境变量。 Java下的一个简单易用的反编译工具jad, 可以很方便的将.class反编译为.Java. 一、基本用法 假设在c:\Java\目录下包含有一个名为example1.class的文件,反编译方法如下所示。 c:\Java\>jad example1.class 结果是将example1.class反编译为example1.jad。将example1.jad改为example1.Java 即得源文件。 c:\Java\>jad *.class 上述语句可以反编译c:\Java\目录下所有的class文件。 二、Option -o 不提示,覆盖源文件

三、Option -s c:\Java\>jad –s Java example1.class 反编译结果以.Java为扩展名。编译出来的文件就是example1.java 四、Option -p 将反编译结果输出到屏幕 c:\Java\>jad -p example1.class 将反编译结果重定向到文件 c:\Java\>jad -p example1.class>example1.Java 五、Option -d 指定反编译的输出文件目录 c:\Java\>jad -o –d test –s Java *.class 上述语句是将c:\Java\下所有class文件反编译输出到test目录下。 反编译别人的程序可以让我们看到别人软件的源代码,从而更好的了解别人的软件是如何开发出来的, 积累我们的编程经验,在此基础上还可以对软件进行一些修改。除jad外小颖JAVA源代码反编译专家 V1.4终极版也是个很好的工具,但是只能对JDK1.4.2和之前的版本编译的程序反编译,而JDK5.0后 的文件就无能为力了,我们接着来讲一下小颖java源代码反编译专家的使用方法。 下载安装后打开程序的主界面如下:

XML创建与解析常用方法介绍

XML解析方式介绍 1.DOM4J(Document Object Model for Java) 虽然DOM4J代表了完全独立的开发结果,但最初,它是JDOM的一种智能分支。它合并了许多超出基本XML文档表示的功能,包括集成的XPath支持、XML Schema支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项,它通过DOM4J API和标准DOM接口具有并行访问功能。从2000下半年开始,它就一直处于开发之中。 为支持所有这些功能,DOM4J使用接口和抽象基本类方法。DOM4J大量使用了API中的Collections 类,但是在许多情况下,它还提供一些替代方法以允许更好的性能或更直接的编码方法。直接好处是,虽然DOM4J付出了更复杂的API的代价,但是它提供了比JDOM大得多的灵活性。 在添加灵活性、XPath集成和对大文档处理的目标时,DOM4J的目标与JDOM是一样的:针对Java 开发者的易用性和直观操作。它还致力于成为比JDOM更完整的解决方案,实现在本质上处理所有Java/XML问题的目标。在完成该目标时,它比JDOM更少强调防止不正确的应用程序行为。 DOM4J是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的Java软件都在使用DOM4J来读写XML,特别值得一提的是连Sun的JAXM也在用DOM4J. 【优点】 ①大量使用了Java集合类,方便Java开发人员,同时提供一些提高性能的替代方法。 ②支持XPath。 ③有很好的性能。 【缺点】 ①大量使用了接口,API较为复杂。 2.SAX(Simple API for XML) SAX处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。一般来说,SAX还比它的替代者DOM快许多。 选择DOM还是选择SAX?对于需要自己编写代码来处理XML文档的开发人员来说,选择DOM还是SAX解析模型是一个非常重要的设计决策。 DOM采用建立树形结构的方式访问XML文档,而SAX 采用的是事件模型。

java读写xml文件的方法

在java环境下读取xml文件的方法主要有4种:DOM、SAX、JDOM、JAXB 1. DOM(Document Object Model) 此方法主要由W3C提供,它将xml文件全部读入内存中,然后将各个元素组成一棵数据树,以便快速的访问各个节点。因此非常消耗系统性能,对比较大的文档不适宜采用DOM方法来解析。 DOM API 直接沿袭了 XML 规范。每个结点都可以扩展的基于 Node 的接口,就多态性的观点来讲,它是优秀的,但是在Java 语言中的应用不方便,并且可读性不强。 实例: Java代码 1.import javax.xml.parsers.*; 2.//XML解析器接口 3.import org.w3c.dom.*; 4.//XML的DOM实现 5.import org.apache.crimson.tree.XmlDocument; 6.//写XML文件要用到 7.DocumentBuilderFactory factory = DocumentBuilderFactory.newInst ance(); 8. //允许名字空间 9. factory.setNamespaceAware(true); 10. //允许验证 11. factory.setValidating(true); 12. //获得DocumentBuilder的一个实例 13.try { 14. DocumentBuilder builder = factory.newDocumentBuilder(); 15.} catch (ParserConfigurationException pce) { 16.System.err.println(pce); 17.// 出异常时输出异常信息,然后退出,下同 18.System.exit(1); 19.} 20.//解析文档,并获得一个Document实例。 21.try { 22.Document doc = builder.parse(fileURI); 23.} catch (DOMException dom) { 24.System.err.println(dom.getMessage()); 25.System.exit(1); 26.} catch (IOException ioe) { 27.System.err.println(ioe); 28.System.exit(1); 29.}

电脑端反编译pyc完全教程(两种方法)

本文由panhaiqing1990贡献 doc1。 完全教程(两种方法 两种方法) 电脑端反编译 pyc 完全教程 两种方法 QUOTE: 写在前面:虽然手机上可以使用许多反编译的软件, 但是受限于手机的运存,稍微大一点的 pyc 代码就不 能反编译成功,或者要等很久,因此笔者特研究出怎 样在电脑端用 python 反编译。 ********************************************** ************ QUOTE: 感谢 真.天舞 大哥提供的另外一种方法,就是使用电脑端的 decompile 代码, 也可以实现反编译哈,感觉比较简单,大家选择一种使用吧。 先安装 PY 平台 这里下载 2.2.3 的平台 2.5 的不行,用不了 安装完成再把反编译脚本复制到安装盘 Lib 文件夹里面 再打开“开始”,“程序”,“Python 2.2”,“IDLE (Python GUI)” 把下面编码复制到编辑器里面 >>> from decompile import main(这里按回车键跳下到下一行) >>> main('','.',['c:\\ped.pyc']) 注:c:\\ped.pyc 是要编译的文件路径,实际操作的时候要把路径改为你要编译的脚本路径 然后 Enter 键(回车键) 少等片刻…… 到 C 盘看一看,ped.pyc_dis 就是反编译出来的脚本了 把后缀改为 ped.py 就可以了 QUOTE: 最新发现,原来两种方法本质上是一样的,都是调用 decompile 文件夹里面的相应模块和函数,实现反编 译。 我写的那种方法其实就是 真.天舞 大哥说的那种 方法的翻版。我写的那种方法是先将 py_decompile 模块放在根目录下面,其实它的代码就三句: [Copy to clipboard] [ - ] CODE: from decompile import main def decompile(path): main('','.',[path],none,0,0,0) 之后再调用里面的 decompile 函数,也就是换汤不换 药。一样哈。 QUOTE: 电脑端反编译 pyc 教程 在网上曾多次见到有人说电脑端用 decompile 模块可 以反编译 pyc 文件, 但是所说的那种方法根本就不行, 因为一来是那个模块不好找,二来是那是反编译的语 句根本就是错误的,根本没法用,或者说作者没有写 清楚到底该以什么样的步骤来反编译导致我弄不来。 经过我仔细加长时间的实验终于有了一点收获,下面 把图文教程弄给大家, 以便为有需要的朋友提供便利: 1.需要的软件和文件 首先,是 python2.2.3 for windows,我试过了,用 更加高级的版本不能反编译成功。安装它。 然后是我从炫飘零的“编译反编译工具”解包得 来的反编译所需要的模块。解压缩后全部放在电脑端 python 的“安装盘:\python22 \lib”下面。 2.按下图所示,在开始菜单处选择 接下来,看到这个画面,有点像 cmd 的界面: 3.在里面输入:import py_decompile 回车 py_decompile.decompile(“需要反编译的文件完整路 径”) 回车 如图 之后等一下,成功的话会看见这样的提示: 反编译后的文件和原文件在一个目录下面: 然后把它的文件后缀改成 py 就可以变成一个 py 脚本 了。 但是反编译之后的 py 脚本里面的许多提示性的文字 全是一些符号加字母和数字组成,怎么还原成中文或 者说是原文呢,这里推荐使用我提供的从网上搜来的 源码还原,因为种种原因,这个没能整到电脑上面来 使用,只能在手机上面使用。它可以批量还原,相当 安逸。当你把需要反编译的文件反编译好后,就可以 传到手机上面一个单独的目录。然后运行软件选择相 应的目录,之后就等吧,不久就成功了。 附图: 在看下还原后的效果: 再给大家看张我用模拟器在电脑端运行我修改后的 py 代码的情况。 [ 本帖最后由 perfectswpuboy1 于 2009-8-28 19:19 编辑 ]

技术-Java防反编译技术

Java防反编译技术 1简介 1.1 Java软件面临的挑战 目前,由于黑客的频繁活动,使得Java类文件面临着反编译的挑战。有一些工具能够对Java 源代码进行反工程,其结果甚至以比普通Java文件更可读的方式, 尽管普通的Java文件(由于代码风格不同)有注释。许可证和软件过期对于用户们来说将变得无用。因此,防止软件被反编译或使得反编译的结果变得无意义对于Java来说非常重要。 一个Java类文件不一定非要存储在一个真正的文件里;它可以存在存贮器缓冲区,或从一个网络流获得。尽管防火墙和网络协议如TCP/IP有安全策略,黑客仍能打破访问限制获取一些类。尽管这些类能被混淆,他们(黑客)能够一步一步地分析和猜出每个指令的目的。如果这些代码是关键技术部分,例如是大产品的许可证或时间期满部分,反编译和分析指令的努力似乎很值得。如果这些关键类被隐藏或被一个关键字加密,黑客的非法入侵就很困难了。而且,未认证的软件复制对智能产权是普遍的攻击。还没有一个较好的通用方案来解决这类问题。 目前关于JA V A程序的加密方式不外乎JA V A混淆处理(Obfuscator)和运用ClassLoader 方法进行加密处理这两种方式(其他的方式亦有,但大多是这两种的延伸和变异)。 1.2 混淆处理 关于JA V A程序的加密方式,一直以来都是以JA V A混淆处理(Obfuscator)为主。这方面的研究结果也颇多,既有混淆器(如现在大名鼎鼎的JODE,SUN开发的JADE),也有针对反编译器的"炸弹"(如针对反编译工具Mocha的"炸弹" Crema和HoseMocha)。混淆器,从其字面上,我们就可以知道它是通过混淆处理JA V A代码,具体的说,就是更换变量名,函数名,甚至类名等方法使其反编译出来的代码变得不可理解。它的目的是:让程序无法被自动反编译,就算被反编译成功,也不容易被程序员阅读理解 其实这只是做到了视觉上的处理,其业务逻辑却依然不变,加以耐心,仍是可以攻破的,如果用在用户身份验证等目的上,完全可以找到身份验证算法而加以突破限制。 1.3 采用ClassLoader加密 JA V A虚拟机通过一个称为ClassLoader的对象装来载类文件的字节码,而ClassLoader 是可以由JA V A程序自己来定制的。ClassLoader是如何装载类的呢?ClassLoader根据类名在jar包中找到该类的文件,读取文件,并把它转换成一个Class对象。该方法的原理就是,

JAVA生成XML文件

package com.inspur.test; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import org.jdom.Document; import org.jdom.Element; import org.jdom.output.Format; import org.jdom.output.XMLOutputter; public class FileDemo { /** *@param args */ public static void main(String[] args) { // TODO Auto-generated method stub String filename="c:\\text.xml"; File file=new File(filename); /** *判断文件是否存在.如果文件不存在则生成一个文件 *则生成一个文件;反之则先删除原有文件,生成一个新的文件 */ if(file.exists()){ try { file.delete(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } try { file.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //创建根节点 Element root=new Element("ObjFlow"); //根节点添加到文档中 Document document=new Document(root); //添加工单基本信息 //创建工单基本信息的节点 Element baseinfo=new Element("BaseInfo"); //创建工单编号节点 Element formOid=new Element("formOid"); //添加工单编号节点内容 formOid.setText("工单编号"); //将工单编号节点添加到基本信息节点下

相关文档
最新文档