欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

安卓应用程序的逆向工程

来源:本站整理 作者:佚名 时间:2017-09-20 TAG: 我要投稿
        String a = "vXrMphqS3bWfIGT811/V2Q==";
        String b = "TXlTdXBlclNlY3JldEwzM3RQYXNzdzByZA==";
        String new_b = new String(Base64.getDecoder().decode(b));
 
        byte[] array = Base64.getDecoder().decode(a);
        String decoded = decrypt(array, getKey(new_b));
 
        System.out.println("Decoded : " + decoded);
    }
 
    private static String decrypt(byte[] array, SecretKey secretKey) {
        String decoded = null;
        try {
 
            Cipher instance = Cipher.getInstance("AES/ECB/PKCS5Padding");
            instance.init(2, secretKey);
            decoded = new String(instance.doFinal(array), "UTF-8");
        }catch (Exception e) {
            // do something
        }
        return decoded;
    }
    
    private static SecretKey getKey(String s) {
        SecretKeySpec secretKeySpec = null;
        try {
            MessageDigest instance = MessageDigest.getInstance("MD5");
            instance.update(s.getBytes());
            byte[] digest = instance.digest();
            StringBuilder sb = new StringBuilder();
            for (int length = digest.length, i = 0; i
                sb.append(String.format("%02x", digest[i] & 0xFF));
            }
            secretKeySpec = new SecretKeySpec(sb.toString().substring(0, 16).getBytes(), "AES");
        } catch (Exception e) {
            // do something
        }
        return secretKeySpec;
    }
}
将文件命名为Decrypt.java 并保留文件。咱们必要编译这个文件,而后运转它来检测咱们的代码能否起作用了。
// create new file
$ nano Decrypt.java
// compile file
$ javac Decrypt.java
// run file
$ java Decrypt
Decoded : knb*AS234bnm*0
咱们可以或许在python代码中做异样的工作,就像先前frida那样,然则有时刻复制代码是更简略的,由于只必要做很小的改动就可以够或许使它运转。
咱们曾经描写了所提到的一切工具和办法,如今是时刻喝杯咖啡了。

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] 

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载