安卓题
声明
这是一道简单有手就行的安卓题
拖进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