【攻防世界】 APK逆向

题目链接

把APK拖进Jeb,通过分析可得它的逻辑:通过userName的MD5值与输入的sn值对比,我们要求解的是这个sn值。

通过以下java代码就可以得到sn值:

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class test {  
    public static void main(String[] args) {  
        String userName = "Tenshine";
        try {
                if(userName.length() != 0) {
                    MessageDigest messageDigest0 = MessageDigest.getInstance("MD5");
                    messageDigest0.reset();
                    messageDigest0.update(userName.getBytes());
                    String s2 = toHexString(messageDigest0.digest(), "");
                    StringBuilder sb = new StringBuilder();
                    for(int i = 0; i < s2.length(); i += 2) {
                        sb.append(s2.charAt(i));
                    }

                    System.out.println(sb.toString());
                }
            }
            catch(NoSuchAlgorithmException e) {
                e.printStackTrace();
            } 
    }

 private static String toHexString(byte[] bytes, String separator) {
        StringBuilder hexString = new StringBuilder();
        for(int i$ = 0; i$ < bytes.length; ++i$) {
            String s1 = Integer.toHexString(bytes[i$] & 0xFF);
            if(s1.length() == 1) {
                hexString.append('0');
            }

            hexString.append(s1).append(separator);
        }

        return hexString.toString();
    }

}

你可能感兴趣的:(逆向工程,Mobile,CTF,安全,android)