diff --git a/AndroidTools.iml b/AndroidTools.iml
new file mode 100644
index 0000000..7e49b68
--- /dev/null
+++ b/AndroidTools.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ad_config.cfg b/ad_config.cfg
new file mode 100644
index 0000000..068a610
--- /dev/null
+++ b/ad_config.cfg
@@ -0,0 +1,150 @@
+{
+ "array": [
+ {
+ "title": "广点通",
+ "ltName": "GDTUnionSDK_QY.lt",
+ "manifest": [
+ "",
+ "",
+ "",
+ ""
+ ],
+ "class": [
+ "com.qq.e.ads.ADActivity",
+ "com.qq.e.ads.PortraitADActivity",
+ "com.qq.e.ads.LandscapeADActivity",
+ "com.qq.e.comm.DownloadService"
+ ],
+ "random": [
+ "com",
+ "ww",
+ "dt"
+ ],
+ "rename": {
+ "ADActivity": "Activity",
+ "PortraitADActivity": "PortraitActivity",
+ "LandscapeADActivity": "LandscapeActivity",
+ "DownloadService": "DownloadService"
+ },
+ "isAllPackage":false,
+ "isReName": true,
+ "isJarLib":false,
+ "packagerlimit": 3,
+ "isManual": false,
+ "manual": [
+ {
+ "class": "com.qq.e.comm.a",
+ "find": "com/qq/e/ads/ADActivity"
+ }
+ ]
+ },
+ {
+ "title": "聚量",
+ "ltName": "jla",
+ "manifest": [
+ "/>",
+ "",
+ "",
+ "",
+ ""
+ ],
+ "class": [
+ "com.uniplay.adsdk.AdActivity",
+ "com.uniplay.adsdk.InterstitialAdActivity",
+ "com.uniplay.adsdk.NetworkChangeActivity",
+ "com.joomob.activity.AdVideoActivity",
+ "com.uniplay.adsdk.DownloadService"
+ ],
+ "random": [
+ "com",
+ "ww",
+ "ut"
+ ],
+ "rename": {
+ "AdActivity": "Activity",
+ "InterstitialAdActivity": "InterstitialActivity",
+ "NetworkChangeActivity": "NetworkChangeActivity",
+ "AdVideoActivity": "VideoActivity",
+ "DownloadService": "DownloadService"
+ },
+ "isAllPackage":false,
+ "isReName": true,
+ "isJarLib":false,
+ "packagerlimit": 3,
+ "isManual": true,
+ "manual": [
+ {
+ "class":"com.uniplay.adsdk.basic.RuleManage",
+ "find":".method public configRight",
+ "msg":"仅保留const-string v0, \"\" return-object v0"
+ }
+ ]
+ },
+ {
+ "title": "万维",
+ "ltName": "OnewaySDK_QY.lt",
+ "manifest": [
+ "",
+ ],
+ "class": [
+ "mobi.oneway.sdk.AdShowActivity"
+ ],
+ "random": [
+ "com",
+ "ww",
+ "wt"
+ ],
+ "rename": {
+ "AdShowActivity": "ShowActivity"
+ },
+ "isAllPackage":false,
+ "isReName": true,
+ "isJarLib":false,
+ "packagerlimit": 3,
+ "isManual": true,
+ "manual": [
+ {
+ "class":"mobi.oneway.sdk.port.Unit",
+ "find":"const-string v0, \"mobi.oneway.export.AdShowActivity\""
+ },
+ {
+ "class":"mobi.oneway.sdk.b.c",
+ "find":"const-string v1, \"mobi.oneway.export.OWProvider\""
+ }
+ ]
+ },
+ {
+ "title": "趣赢SDK",
+ "ltName": "qysdk.jar",
+ "manifest": [
+ "",
+ " ",
+ " "
+ ],
+ "class": [
+ "com.qy.sdk.views.MyActivity",
+ "com.qy.sdk_rx.listeners.QyReceiver",
+ "com.qy.sdk.TMProvider"
+ ],
+ "random": [
+ "com",
+ "wq",
+ "rx"
+ ],
+ "rename": {
+ "MyActivity": "Activity",
+ "QyReceiver":"Receiver",
+ "TMProvider":"TProvider"
+ },
+ "isAllPackage":true,
+ "isReName": true,
+ "isJarLib":true,
+ "packagerlimit": 3,
+ "isManual": false,
+ "manual": [
+
+ ],
+ "dex2jar":"/media/yutou/_dde_data/反编译/dex2jar-2.0/_d2j-dex2jar.sh"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/apktool_2.3.4.jar b/apktool_2.3.4.jar
new file mode 100755
index 0000000..000e599
Binary files /dev/null and b/apktool_2.3.4.jar differ
diff --git a/config.cfg b/config.cfg
new file mode 100755
index 0000000..fabff27
--- /dev/null
+++ b/config.cfg
@@ -0,0 +1,20 @@
+{
+"switch":"1",
+"1":"/home/yutou/AndroidStudioProjects/ADSDK_v5/sdk_rx/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/",
+"2":"/home/yutou/AndroidStudioProjects/ADSDK_v5/qyadsdk/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/",
+"3":"F:/AndroidStudio_Data/GameSDK/sdk_rx/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/",
+"4":"/home/yutou/AndroidStudioProjects/ADSDK_v5/sdk_rx/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/",
+"5":"/home/yutou/AndroidStudioProjects/ADSDK_v5/qyadsdk/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/",
+"6":"/home/yutou/AndroidStudioProjects/ADSDK_v5/Test/build/intermediates/javac/debug/classes/com/",
+"input":"/media/yutou/_dde_data/AndroidStudio_Data/buildTools/com.zip",
+"out":"/media/yutou/_dde_data/AndroidStudio_Data/buildTools/",
+"dx":"/media/yutou/_dde_data/AndroidStudio_Data/buildTools/dx.jar",
+"array":[
+ "rd_rx",
+ "qy_rx",
+ "rx",
+ "rd_rx",
+ "qy_rx",
+ "atest"
+ ]
+}
\ No newline at end of file
diff --git a/dx.jar b/dx.jar
new file mode 100755
index 0000000..b566b56
Binary files /dev/null and b/dx.jar differ
diff --git a/libs/apktool_2.3.3.jar b/libs/apktool_2.3.3.jar
new file mode 100755
index 0000000..6270407
Binary files /dev/null and b/libs/apktool_2.3.3.jar differ
diff --git a/libs/apktool_2.3.4.jar b/libs/apktool_2.3.4.jar
new file mode 100755
index 0000000..000e599
Binary files /dev/null and b/libs/apktool_2.3.4.jar differ
diff --git a/libs/json-20180130.jar b/libs/json-20180130.jar
new file mode 100755
index 0000000..bc2cd41
Binary files /dev/null and b/libs/json-20180130.jar differ
diff --git a/libs/zip4j-1.3.2.jar b/libs/zip4j-1.3.2.jar
new file mode 100755
index 0000000..dcdf85e
Binary files /dev/null and b/libs/zip4j-1.3.2.jar differ
diff --git a/src/com/qy/Interfaces/DalogAbs.java b/src/com/qy/Interfaces/DalogAbs.java
new file mode 100755
index 0000000..0047e93
--- /dev/null
+++ b/src/com/qy/Interfaces/DalogAbs.java
@@ -0,0 +1,5 @@
+package com.qy.Interfaces;
+
+public abstract class DalogAbs {
+ public abstract void onSuccess();
+}
diff --git a/src/com/qy/Interfaces/SmaliApkToolsPath.java b/src/com/qy/Interfaces/SmaliApkToolsPath.java
new file mode 100755
index 0000000..80e18a4
--- /dev/null
+++ b/src/com/qy/Interfaces/SmaliApkToolsPath.java
@@ -0,0 +1,5 @@
+package com.qy.Interfaces;
+
+public interface SmaliApkToolsPath {
+ void smaliPath(String path);
+}
diff --git a/src/com/qy/sms/SDKTools.java b/src/com/qy/sms/SDKTools.java
new file mode 100755
index 0000000..8f06b73
--- /dev/null
+++ b/src/com/qy/sms/SDKTools.java
@@ -0,0 +1,418 @@
+package com.qy.sms;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.zip.Deflater;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+import java.util.zip.ZipOutputStream;
+
+import com.qy.utils.Tools;
+import com.qy.utils.WorldTools;
+
+import net.lingala.zip4j.model.ZipParameters;
+import net.lingala.zip4j.util.Zip4jConstants;
+
+public class SDKTools {
+ public static String a, b, c;
+ public static String packName;
+ public static String srcPackName = "com.jobs.sdk";
+ public static String sdkDatapath;
+ public static String GameSDKManageName = "GameSDKManage";
+ public static Map sdkfunction;
+ private static String dataFolder = "data";
+ public static String version = "2.24";
+
+ public static void start(String descDir) {
+ SDKTools tools = new SDKTools();
+ tools.initName();
+ tools.unSDKzip(descDir);
+ tools.resdk();
+ tools.reCode(SDKTools.sdkDatapath);
+ tools.reGameSDKManage();
+ tools.classPath.add(new File(dataFolder).getAbsolutePath() + "\\android.jar");
+ tools.classPath.add(new File(dataFolder).getAbsolutePath() + "\\androidv4.jar");
+ tools.saveJavaPath(sdkDatapath);
+ tools.javaToClass(sdkDatapath);
+ System.out.println("ļ:" + sdkDatapath);
+ tools.deleteJava(sdkDatapath);
+ tools.toJarforJar();
+ WorldTools.start(packName, GameSDKManageName, sdkfunction);
+
+ }
+
+ private void initName() {
+ sdkfunction = new HashMap<>();
+ sdkfunction.put("getSDKManage", "get" + Tools.getRandomString(Tools.getRandomInt(5, 12)));
+ sdkfunction.put("init", Tools.getRandomString(Tools.getRandomInt(5, 12)));
+ sdkfunction.put("regMethod", Tools.getRandomString(Tools.getRandomInt(5, 12)));
+ sdkfunction.put("stop", Tools.getRandomString(Tools.getRandomInt(5, 12)));
+ sdkfunction.put("pay", Tools.getRandomString(Tools.getRandomInt(5, 12)));
+ sdkfunction.put("authority", Tools.getRandomString(Tools.getRandomInt(5, 12)));
+ sdkfunction.put("getTextAlpha", Tools.getRandomString(Tools.getRandomInt(5, 12)));
+ sdkfunction.put("setLog", Tools.getRandomString(Tools.getRandomInt(5, 12)));
+ sdkfunction.put("getVersion", Tools.getRandomString(Tools.getRandomInt(5, 12)));
+ sdkfunction.put("getPermission", Tools.getRandomString(Tools.getRandomInt(5, 12)));
+ }
+
+ public void unSDKzip_(String descDir) {
+ try {
+ File sdkPath = new File(new File("").getAbsolutePath() + "/smsdk/");
+ System.out.println(sdkPath + " " + sdkPath.exists());
+ if (sdkPath.exists()) {
+ Tools.deleteFiles(sdkPath.getAbsolutePath());
+ }
+ File zipFile = new File(new File(dataFolder).getAbsolutePath() + "/sdk.zip");
+ System.out.println("ѹsdkԴ:"+zipFile.getAbsolutePath());
+ ZipFile zip = new ZipFile(zipFile);
+ for (Enumeration> entries = zip.entries(); entries.hasMoreElements();) {
+ ZipEntry entry = (ZipEntry) entries.nextElement();
+ String zipEntryName = entry.getName();
+ InputStream in = zip.getInputStream(entry);
+ String outPath = (descDir + "/" + zipEntryName).replace("\\", "/");
+ // ж·Ƿ,ļ·
+ File file = new File(outPath.substring(0, outPath.lastIndexOf('/')));
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ // жļȫ·ǷΪļ,Ѿϴ,Ҫѹ
+ if (new File(outPath).isDirectory()) {
+ continue;
+ }
+ // ļ·Ϣ
+ System.out.println(outPath);
+ OutputStream out = new FileOutputStream(outPath);
+ byte[] buf1 = new byte[1024];
+ int len;
+ while ((len = in.read(buf1)) > 0) {
+ out.write(buf1, 0, len);
+ }
+ in.close();
+ out.close();
+ }
+ zip.close();
+ System.out.println("******************ѹ********************");
+ } catch (Exception e) {
+ // TODO: handle exception
+ e.printStackTrace();
+ }
+ }
+ private void unSDKzip(String descDir) {
+ try {
+ File sdkPath = new File(new File("").getAbsolutePath() + "/smsdk/");
+ System.out.println(sdkPath + " " + sdkPath.exists());
+ if (sdkPath.exists()) {
+ Tools.deleteFiles(sdkPath.getAbsolutePath());
+ }
+ File zipFile = new File(new File(dataFolder).getAbsolutePath() + "/sdk.zip");
+ System.out.println("ѹsdkԴ:"+zipFile.getAbsolutePath());
+ net.lingala.zip4j.core.ZipFile zip=new net.lingala.zip4j.core.ZipFile(zipFile);
+ zip.setFileNameCharset("GBK");
+ zip.extractAll(new File("").getAbsolutePath());
+ System.out.println("******************ѹ********************");
+ } catch (Exception e) {
+ // TODO: handle exception
+ e.printStackTrace();
+ }
+ }
+
+ public void resdk() {
+ File sdkPath = new File(new File("").getAbsolutePath() + "/smsdk/");
+ if (!sdkPath.exists()) {
+ System.out.println("SDKĿ¼ " + sdkPath.getAbsolutePath());
+ return;
+ }
+ a = Tools.getRandomString(3);
+ b = Tools.getRandomString(4);
+ c = Tools.getRandomString(4);
+ packName = a + "." + b + "." + c;
+ System.out.println("SDK" + packName);
+ rename(sdkPath);
+ }
+
+ private void rename(File folder) {
+ String tmp = "", tmp2 = "";
+ if (folder.exists() && folder.isDirectory()) {
+ switch (folder.getName()) {
+ case "com":
+ tmp = "com";
+ folder.renameTo(new File(new File("smsdk").getAbsolutePath() + File.separator + a));
+ tmp2 = a;
+ break;
+ case "jobs":
+ tmp = "jobs";
+ folder.renameTo(new File(new File("smsdk/" + a).getAbsolutePath() + File.separator + b));
+ tmp2 = b;
+ break;
+ case "sdk":
+ tmp = "sdk";
+ tmp2 = c;
+ sdkDatapath = new File("smsdk/" + a + "/" + b).getAbsolutePath() + File.separator + c;
+ folder.renameTo(new File(sdkDatapath));
+ break;
+ default:
+ break;
+ }
+ System.out.println(sdkDatapath + " " + folder.getAbsolutePath() + " " + tmp + " " + tmp2);
+ folder = new File(folder.getAbsolutePath().replace(File.separator + tmp, File.separator + tmp2));
+ System.out.println(folder.getAbsolutePath());
+ for (File fold : folder.listFiles()) {
+ if (fold.isDirectory()) {
+ rename(fold);
+ }
+ }
+ }
+ }
+
+ public void reCode(String path) {
+ File file = new File(path);
+ for (File f : file.listFiles()) {
+ if (f.isDirectory()) {
+ reCode(f.getAbsolutePath());
+ } else if (f.getName().contains(".java")) {
+ reJava(f);
+ }
+ }
+ }
+
+ private void reJava(File java) {
+ try {
+ BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(java), "UTF-8"));
+ String str = "", tmp;
+ while ((tmp = reader.readLine()) != null) {
+ if (tmp.contains(srcPackName)) {
+ tmp = tmp.contains(srcPackName + "_rx") ? tmp : tmp.replace(srcPackName, packName);
+ }
+ str += tmp + "\n";
+ }
+ reader.close();
+ PrintWriter writer = new PrintWriter(java);
+ writer.write(str);
+ writer.flush();
+ writer.close();
+ } catch (Exception e) {
+ // TODO: handle exception
+ e.printStackTrace();
+ }
+ }
+
+ private void reGameSDKManage() {
+ File java = new File(sdkDatapath + "/GameSDKManage.java");
+ if (!java.exists()) {
+ System.out.println("GameSDKManage.java");
+ return;
+ }
+ GameSDKManageName = Tools.getRandomString(Tools.getRandomInt(4, 8));
+ File javaName = new File(java.getAbsolutePath().replace(java.getName(), GameSDKManageName + ".java"));
+ try {
+ BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(java)));
+ String str = "", tmp;
+ while ((tmp = reader.readLine()) != null) {
+ tmp = tmp.replace("GameSDKManage", GameSDKManageName);
+ tmp = tmp.replace("getSDKManage", sdkfunction.get("getSDKManage"));
+ tmp = tmp.replace("init", sdkfunction.get("init"));
+ tmp = tmp.replace("regMethod", sdkfunction.get("regMethod"));
+ tmp = tmp.replace("stop", sdkfunction.get("stop"));
+ tmp = tmp.replace("pay", sdkfunction.get("pay"));
+ tmp = tmp.replace("authority", sdkfunction.get("authority"));
+ tmp = tmp.replace("getTextAlpha", sdkfunction.get("getTextAlpha"));
+ tmp = tmp.replace("setLog", sdkfunction.get("setLog"));
+ tmp = tmp.replace("getVersion", sdkfunction.get("getVersion"));
+ tmp = tmp.replace("getPermission", sdkfunction.get("getPermission"));
+ str += tmp + "\n";
+ }
+ reader.close();
+ PrintWriter writer = new PrintWriter(javaName);
+ writer.write(str);
+ writer.flush();
+ writer.close();
+ java.delete();
+ } catch (Exception e) {
+ // TODO: handle exception
+ e.printStackTrace();
+ }
+ }
+
+ private List classPath = new ArrayList<>();
+ private List javaPath = new ArrayList<>();
+
+ private void saveJavaPath(String path) {
+ File file = new File(path);
+ for (File f : file.listFiles()) {
+ if (f.isDirectory()) {
+ saveJavaPath(f.getAbsolutePath());
+ } else if (f.getName().contains(".java")) {
+ javaPath.add(f.getAbsolutePath());
+ }
+ }
+ }
+
+ private void javaToClass(String path) {
+ File file = new File(path);
+ for (File f : file.listFiles()) {
+ if (f.isDirectory()) {
+ javaToClass(f.getAbsolutePath());
+ } else if (f.getName().contains(".java")) {
+ try {
+ String exec = "javac -classpath " + getClassPath() + "; -sourcepath " + getSourcePath() + " "
+ + f.getAbsolutePath() + "\n";
+ System.out.println(exec);
+ Process process = Runtime.getRuntime().exec(exec);
+ process.waitFor();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ private void deleteJava(String path) {
+ File file = new File(path);
+ for (File f : file.listFiles()) {
+ System.out.println("---->" + f.getAbsolutePath());
+ if (f.isDirectory()) {
+ deleteJava(f.getAbsolutePath());
+ }
+ if (f.getName().contains(".java")) {
+ File ft = new File(f.getAbsolutePath().replace(".java", ".class"));
+ if (ft.exists()) {
+ f.delete();
+ // System.out.println("ɾjava"+f.getAbsolutePath()+" "+t);
+ }
+ }
+ }
+ }
+
+ private String getSourcePath() {
+ String classpath = new File("smsdk").getAbsolutePath() + ";.";
+ System.out.println("classpath: " + classpath);
+ return classpath;
+ }
+
+ private String getClassPath() {
+ String classPath = "";
+ for (String str : this.classPath) {
+ classPath += str + ";";
+ }
+
+ return classPath.substring(0, classPath.length() - 1);
+ }
+
+
+ public static void buildSDK(File sdkzip) {
+ try {
+ List files = new ArrayList<>();
+ List zips = new ArrayList<>();
+ Map fileNames = new HashMap<>();
+ if (sdkzip == null)
+ sdkzip = new File("Ʒsdk" + version + ".zip");
+ if (sdkzip.exists())
+ sdkzip.delete();
+ ZipOutputStream output = new ZipOutputStream(new FileOutputStream(sdkzip));
+ output.setLevel(Deflater.DEFLATED);
+
+ File sdk = new File("sdk.jar");
+ File word = new File("ĵ.txt");
+ File rx = new File("data/rx.lt");
+ File v4 = new File("data/androidv4.jar");
+ File manifest = new File("data/manifest嵥.txt");
+ File permission = new File("data/Ȩб.txt");
+
+ files.add(sdk);
+ files.add(word);
+ files.add(rx);
+ files.add(manifest);
+ files.add(permission);
+ files.add(v4);
+
+ for (File file : files) {
+ ZipEntry zip = new ZipEntry(file.getName());
+ zips.add(zip);
+ fileNames.put(zip.getName(), file);
+ }
+
+ for (ZipEntry zipEntry : zips) {
+ output.putNextEntry(zipEntry);
+ BufferedInputStream bis = new BufferedInputStream(
+ new FileInputStream(fileNames.get(zipEntry.getName())));
+ byte[] buffer = new byte[1024];
+ int count;
+ while ((count = bis.read(buffer)) != -1) {
+ output.write(buffer, 0, count);
+ }
+ output.flush();
+ bis.close();
+ }
+ output.closeEntry();
+ output.close();
+
+ sdk.delete();
+ word.delete();
+ } catch (Exception e) {
+ // TODO: handle exception
+ e.printStackTrace();
+ }
+ }
+ private void toJarforJar() {
+ try {
+ Process process=Runtime.getRuntime().exec("jar cvf sdk.jar -C smsdk/ .");
+ process.waitFor();
+ } catch (Exception e) {
+ // TODO: handle exception
+ e.printStackTrace();
+ }
+ }
+ @Deprecated
+ private void toJar() {
+ try {
+ File dir = new File("smsdk"+File.separator+a);
+ ZipParameters par = new ZipParameters();
+ par.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
+ par.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
+ net.lingala.zip4j.core.ZipFile zipFile=new net.lingala.zip4j.core.ZipFile(new File("sdk.zip"));
+ jar(zipFile,dir, par);
+ File zip=new File("sdk.zip");
+ zip.renameTo(new File("sdk.jar"));
+ zip.delete();
+ } catch (Exception e) {
+ // TODO: handle exception
+ e.printStackTrace();
+ }
+ }
+
+ private void jar(net.lingala.zip4j.core.ZipFile zipFile, File file,ZipParameters par) throws Exception {
+ toJar();
+ for (File f : file.listFiles()) {
+ System.out.println("ѹļ"+f.getAbsolutePath());
+ if(f.isDirectory()) {
+ par.setCompressionMethod(Zip4jConstants.COMP_STORE);
+ File t=new File(f.getName());
+ t.mkdirs();
+ zipFile.addFolder(t, par);
+ jar(zipFile, f, par);
+ }else {
+ par.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
+ par.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
+ zipFile.addFile(f, par);
+ }
+ }
+ /*if(file.isDirectory()) {
+ zipFile.addFolder(file, par);
+ }else {
+ zipFile.addFile(file, par);
+ }*/
+ }
+}
diff --git a/src/com/qy/ui/AESUi.java b/src/com/qy/ui/AESUi.java
new file mode 100755
index 0000000..4fffea4
--- /dev/null
+++ b/src/com/qy/ui/AESUi.java
@@ -0,0 +1,73 @@
+package com.qy.ui;
+
+import javax.swing.JFrame;
+import javax.swing.JEditorPane;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+
+import com.qy.utils.AESTools;
+
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+
+public class AESUi extends JFrame{
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public AESUi() {
+ setResizable(false);
+ setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+ setTitle("AES\u5DE5\u5177");
+ // TODO Auto-generated constructor stub
+ initView();
+ }
+ private JEditorPane output,input;
+ private void initView() {
+ setSize(807, 493);
+ getContentPane().setLayout(null);
+ output = new JEditorPane();
+ output.setBounds(48, 250, 691, 168);
+ getContentPane().add(output);
+
+ input = new JEditorPane();
+ input.setBounds(48, 38, 691, 144);
+ getContentPane().add(input);
+
+ JButton button = new JButton("\u52A0\u5BC6");
+ button.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ String inStr=input.getText();
+ String out=new String(AESTools.aesEncrypt(inStr, AESTools.key));
+ output.setText(out);
+ }
+ });
+ button.setBounds(499, 195, 113, 27);
+ getContentPane().add(button);
+
+ JButton button_1 = new JButton("\u89E3\u5BC6");
+ button_1.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ String inStr=input.getText();
+ String out=AESTools.aesDecrypt(inStr, AESTools.key);
+ output.setText(out);
+ }
+ });
+ button_1.setBounds(626, 195, 113, 27);
+ getContentPane().add(button_1);
+
+
+
+ JLabel label = new JLabel("\u8F93\u5165");
+ label.setBounds(48, 13, 72, 18);
+ getContentPane().add(label);
+
+ JLabel label_1 = new JLabel("\u8F93\u51FA");
+ label_1.setBounds(48, 219, 72, 18);
+ getContentPane().add(label_1);
+ setVisible(true);
+ }
+}
diff --git a/src/com/qy/ui/AndroidKey.java b/src/com/qy/ui/AndroidKey.java
new file mode 100755
index 0000000..3ad5645
--- /dev/null
+++ b/src/com/qy/ui/AndroidKey.java
@@ -0,0 +1,180 @@
+package com.qy.ui;
+
+import javax.swing.JFrame;
+import javax.swing.JList;
+import javax.swing.JScrollPane;
+import javax.swing.JLabel;
+import javax.swing.JTextField;
+import javax.swing.JButton;
+import javax.swing.JFileChooser;
+import javax.swing.JTextPane;
+import javax.swing.UIManager;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.AbstractListModel;
+import javax.swing.event.ListSelectionListener;
+
+import com.qy.Interfaces.SmaliApkToolsPath;
+import com.qy.utils.KeyTools;
+
+import javax.swing.event.ListSelectionEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.io.File;
+
+public class AndroidKey extends JFrame{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private JTextField md5;
+ private JTextField sha1;
+ private JTextField sha256;
+ private JTextPane textPane;
+ private List