apk逆向
计算逻辑
对56个字符进行异或处理,写个脚本破解就好
import base64 arr = [0x96, 0xa1, 0xb4, 0xa4, 0x96, 0xff, 0xbf, 0xf8, 0x82, 0x98, 0x8e, 0xa1, 0x81, 0x88, 0x89, 0xff, 0x81, 0xa5, 0xfc, 0xbb, 0x82, 0x98, 0x99, 0xb4, 0x80, 0x98, 0x9d, 0xbb, 0x82, 0xa6, 0x89, 0xb8, 0x95, 0xa1, 0x89, 0xff, 0x96, 0xa5, 0xfc, 0xfe, 0x82, 0x98, 0x89, 0xb5, 0x95, 0xa6, 0xaf, 0xb4, 0x96, 0x88, 0x9a, 0xa6, 0x82, 0xa6, 0xa8, 0xf5] r = '' for i in arr: r += chr(int(i ^ 0xCC)) print base64.b64decode(r) #flag{850f0172-0551-4061-ba7f-6512b71d5c67}
java版,复制反编译出来的MainActivity.class 放到idea中,稍微修改下代码
import com.sun.org.apache.xml.internal.security.exceptions.Base64DecodingException; import com.sun.org.apache.xml.internal.security.utils.Base64; public class test { public static void main(String[] args) { int[] var2 = new int[]{150, 161, 180, 164, 150, 255, 191, 248, 130, 152, 142, 161, 129, 136, 137, 255, 129, 165, 252, 187, 130, 152, 153, 180, 128, 152, 157, 187, 130, 166, 137, 184, 149, 161, 137, 255, 150, 165, 252, 254, 130, 152, 137, 181, 149, 166, 175, 180, 150, 136, 154, 166, 130, 166, 168, 245}; StringBuffer sbu = new StringBuffer(); String s = ""; for (int var3 = 0; var3 < 56; ++var3) { sbu.append((char) (var2[var3] ^ 204)); } System.out.println(sbu.toString()); try { System.out.println(new String(Base64.decode(sbu.toString()), "UTF-8")); } catch (Exception e) { e.printStackTrace(); } } }