IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 2021 SangFor(羊城杯)-Reverse(逆向) Ez_Android Write up -> 正文阅读

[移动开发]2021 SangFor(羊城杯)-Reverse(逆向) Ez_Android Write up

0x00 日常查壳?

安卓逆向,我用JADX

0x01 值得注意的文件

只有在这里文件里所注册的活动页 才会被手机用户观察

0x02 分析主函数

于是直接分析MainActivity

关于这些R.string.xxx都一般存储在

strings.xml存储字符串

然后现在简单分析一下:

1. 经过用户名和密码的检查

2. 密码有段加密然后 - 1的操作

比赛的时候是连vpn登陆 当时用到就是靠这个登陆

然后在资源文件里找

借鉴一下别人脚本

a = 'c232666f1410b3f5010dc51cec341f58'
for i in range(0,len(a),2):
    f = a[i] + a[i+1]       #加前后两个数
    f = int(f,16) + 1       #转成十进制+1
    print("%02x"%f,end="")  #打印成16进制 打印两位 不够补0

然后解密一下获得密码

登录就送码表

0x03 分析程序流

当上面所有验证通过之后跳转到getKeyAndRedirect

这边的会开始CheckFlagActivity的操作 安卓正向开发经验不足 不过大概可以先猜key就是返回来的那串字符

跳转到这之后简单看一下发现比较flag的地方

经过EncodeUtils后和encodeFlag比较

进去一看发现又是base加密,这时候key也可以确实就是打乱的码表(没有重复的字符长度64位)

0x04 GetFlag!

解密脚本

#include <stdio.h>
#include <string.h>

int main(void)
{
	unsigned char key[] = "3lkHi9iZNK87qw0p6U391t92qlC5rwn5iFqyMFDl1t92qUnL6FQjqln76l-P";
	char data[] = {"TGtUnkaJD0frq61uCQYw3-FxMiRvNOB/EWjgVcpKSzbs8yHZ257X9LldIeh4APom" };
	int i, j;
	unsigned int v3;
	int flag[100] = {0};
	
//	printf("\n");
	for(i = 0; i < 60; i++)	
		for(j = 0; j < 64; j++)
			if(key[i] == data[j])
				{
					key[i] = j;					 
//					printf("%d:%d ",i,j);
					break;
				}
	for(i = 0, j = 0; i < 60; i += 4, j += 3)
	{
		v3 = key[i+3] + (key[i+2] << 6) + (key[i+1] << 12) + (key[i] << 18);
		flag[j] = (v3 >> 16) & 0xFF;
		flag[j+1] = (v3 >> 8) & 0xFF;
		flag[j+2] = v3 & 0xFF;
	}
	
	for(i = 0; i < 100; i++)
		printf("%c",flag[i]); 
	
	return 0;	
} 	

解密脚本详情见

Buuctf-Reverse FlareOn3-Challenge Write up_水番正文的博客-CSDN博客

GetFlag!

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 08:05:55  更:2021-09-19 08:06:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:49:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码