谢过各位大虾
我对android2012版QQ的apk包做了反汇编,得到了java源码,现在想从源码中找出QQ聊天时做加密处理的代码部分,有什么好方法嘛?
谢过各位大虾

解决方案 »

  1.   

    加密部分必然在jni里用c++写的
    很困难的
      

  2.   

    貌似是的,很多apk包里都有jni文件,在QQ的包里我找到了QLBSJNI.java和MD5.java两个文件,觉着应该从这里入手看下去!
    QLBSJNI.java文件内容如下,会是在这里加密的吧??
    package com.tencent.lbsapi.core;import java.security.MessageDigest;public class QLBSJNI
    {
      static
      {
        System.loadLibrary("lbs");
      }  public static byte[] md5String(String paramString)
      {
        Object localObject = null;
        try
        {
          byte[] arrayOfByte1 = paramString.getBytes();
          MessageDigest localMessageDigest = MessageDigest.getInstance("MD5");
          localMessageDigest.update(arrayOfByte1);
          byte[] arrayOfByte2 = localMessageDigest.digest();
          localObject = arrayOfByte2;
          return localObject;
        }
        catch (Exception localException)
        {
          while (true)
            localException.printStackTrace();
        }
      }  public native byte[] decode(byte[] paramArrayOfByte, String paramString1, String paramString2);  public native byte[] encode(byte[] paramArrayOfByte, String paramString1, String paramString2);
    }
      

  3.   

    这些只是接口
    真正的在encode和decode里
      

  4.   

    谢谢啊!
    这样的话,我应该怎样找下去?加密的源码从apk包里会逆向出来嘛?
      

  5.   

    在java源码中会调用加密的接口,该接口是在.so文件中,C++写的!用工具ida可以对.so文件进行反汇编看到一堆的arm指令,从中可以找到与java的接口,继续追踪......