title: buu-re-简单注册器
    tags:

    • CTF
    • RE
    • buu
      abbrlink: 55aa4ca9
      date: 2021-03-10 20:59:15

    拿到题目后,是一个APK文件,使用jdx反编译后在mainActivity里面发现了一段核心代码

    1. if (flag == 1) {
    2. char[] x = "dd2940c04462b4dd7c450528835cca15".toCharArray();
    3. x[2] = (char) ((x[2] + x[3]) - 50);
    4. x[4] = (char) ((x[2] + x[5]) - 48);
    5. x[30] = (char) ((x[31] + x[9]) - 48);
    6. x[14] = (char) ((x[27] + x[28]) - 97);
    7. for (int i = 0; i < 16; i++) {
    8. char a = x[31 - i];
    9. x[31 - i] = x[i];
    10. x[i] = a;
    11. }
    12. textview.setText("flag{" + String.valueOf(x) + "}");
    13. return;
    14. }

    然后将此段用C程序写出来即可得到答案

    1. #include<iostream>
    2. using namespace std;
    3. int main()
    4. {
    5. char x[] = "dd2940c04462b4dd7c450528835cca15";
    6. x[2] = (char) ((x[2] + x[3]) - 50);
    7. x[4] = (char) ((x[2] + x[5]) - 48);
    8. x[30] = (char) ((x[31] + x[9]) - 48);
    9. x[14] = (char) ((x[27] + x[28]) - 97);
    10. for (int i = 0; i < 16; i++) {
    11. char a = x[31 - i];
    12. x[31 - i] = x[i];
    13. x[i] = a;
    14. }
    15. cout<<x<<endl;
    16. return 0;
    17. }

    求得flag:59acc538825054c7de4b26440c0999dd