Android java层常见加密算法的hook自吐以及栈信息的打印

时间:2021-01-30 12:06:25   收藏:0   阅读:0
  1. 分析一个aes的加密,下文是我写的一个小demo中复制出来的
  public static String aesEncrypt(String content,String k,String iv)
   {
       try{
           Throwable ex=new Throwable();
           StackTraceElement[] stackTraceElements=ex.getStackTrace();
           IvParameterSpec zeroIv=new IvParameterSpec(iv.getBytes());
           SecretKeySpec key=new SecretKeySpec(k.getBytes(),"AES");
           Cipher cipher=Cipher.getInstance("AES/CBC/PKCS5Padding");
           cipher.init(Cipher.ENCRYPT_MODE,key,zeroIv);
           byte[] encryptedData=cipher.doFinal(content.getBytes(bm));
           return Base64.encodeToString(encryptedData,Base64.DEFAULT);
       }catch (Exception e)
       {
           e.printStackTrace();
       }
       return null;
   }

2.思路分析:
我们的目的还是为了得到key和iv,以及明文和密文,仔细观察有哪些地方是涉及到了,发现是IvParameterSpec和SecretKeySpec这个构造方法中
的参数就是我们的key和iv,那么思路不就直接hook他们的构造函数了吗,将参数打印出来不就完事,注意点在于将所有的构造函数都给hook上,
避免漏了,毕竟从安卓源码中跟进去,发现他们的构造方法都是有重载的,所以为了不漏掉,所以全部hook就好了,xposed同样提供了api,

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!