• 简单的CTF题学习记录


    名称:ctf.bobdylan

    包名:ctf.bobdylan

    程序入口:ctf.bobbydylan.M

    图标:

     

    1.运行界面:

     

    2.使用android killer 反编译后查看,在主活动中找到按钮监听调用

     

     a.smali中

     

    在check()方法中是进行解码的方法,那只要把分析这个函数,就可以破解这个ctf了。

      

     

    这个函数大致的逻辑是解码下面这一数组,进而和输入的值进行比较,那么只要把这组数组解码出来就可以得到正确的答案了。

    v2[0] = 0;
    
    v2[1] = 3;
    
    v2[2] = 13;
    
    v2[3] = 19;
    
    v2[4] = 85;
    
    v2[5] = 5;
    
    v2[6] = 15;
    
    v2[7] = 78;
    
    v2[8] = 22;
    
    v2[9] = 7;
    
    v2[10] = 7;
    
    v2[11] = 68;
    
    v2[12] = 14;
    
    v2[13] = 5;
    
    v2[14] = 15;
    
    v2[15] = 42;

    解码代码:

    public static void parse(){
    
            int [] intArray = new int[]{0,3,13,19,85,5,15,78,22,7,7,68,14,5,15,42};
    
            String key = "bobdylan";
    
            StringBuffer buffer = new StringBuffer();
    
            for (int i = 0; i < intArray.length; i++) {
    
                int num = 0;
    
                int number = -1;
    
                while (true){
    
                    if ((intArray[i] & 255) ==( ( number^key.charAt(i % key.length())) &255)){
    
                        System.out.printf("%c",number);
    
                        break;
    
                    }
                        number++;
                }
    
            }
    
            System.out.println();
        }

     解码结果:

      blow,in the winD

    测试答案:

  • 相关阅读:
    zoj3430Detect the Virus(ac自动机)
    zoj3494BCD Code(ac自动机+数位dp)
    hdu3247Resource Archiver(ac自动机+spfa)
    hdu3341Lost's revenge(ac自动机+dp)
    hdu4511小明系列故事——女友的考验(ac自动机+最短路)
    hdu4758Walk Through Squares(ac自动机+dp)
    数论一
    母函数专题
    KMP专题
    3级算法题
  • 原文地址:https://www.cnblogs.com/NigelX/p/6523107.html
Copyright © 2020-2023  润新知