逆向寒假生涯(27/100)

安卓题

声明

这是一道简单有手就行的安卓题

拖进jeb

在这里插入图片描述
接下来查看DeEnCode类
在这里插入图片描述
简单一个异或而已

Toast.makeText(MainActivity.this, "解密:^TY_C^MIQVK][E", 0).show();

成功之后弹出这句"解密:^TY_C^MIQVK][E",就把这个字符串用来异或一下,解决

脚本

#include <stdio.h>
 #include <string.h> char enc[] = "^TY_C^MIQVK][E";
 char s[] = "2021.1.19";int main(void)
 {
    
    
     int i = 0, j = 0;
     
     for(i = 0; i < strlen(enc); i++)
     {
    
    
         for(j = 0; j < strlen(s); j++)
             enc[i] ^= s[j];
     }
     
     puts(enc);
 } 
 

在这里插入图片描述

flag{
    
    fuqinsec}

PC逆向

全局浏览

在这里插入图片描述
找到判断核心
在这里插入图片描述
dword_55380为输入,dword_5537C为计算出
在这里插入图片描述

计算

踩坑区:

dword_5537C = 123400 * strlen(a1234567890) + 31415926;

在这里插入图片描述
所以我一直算的话就直接123400*11+31415926,但是结果是错的。
查看一下汇编代码:
在这里插入图片描述

字符串是1234567890,(ida伪代码查看时,算上了最后的\0,所以空间大小是11,但是strlen不包括\0)长度为10,所以计算式子为123400*10+31415926

猜你喜欢

转载自blog.csdn.net/CSNN2019/article/details/114106099
今日推荐