本帖最后由 lihaohua 于 2018-12-21 23:26 编辑
基础android
拿到题目模拟器跑一下看到相关字符串
拖进jeb看一下代码
调用了check函数
[Asm] 纯文本查看 复制代码 package com.example.test.ctf02;
public class Check {
public Check() {
super();
}
public boolean checkPassword(String str) {
int v5 = 12;
boolean v2 = false;
char[] v1 = str.toCharArray();
if(v1.length == v5) {
int v0 = 0;
while(true) {
if(v0 < v1.length) {
v1[v0] = ((char)(255 - v0 - 100 - v1[v0]));
if(v1[v0] == 48 && v0 < v5) {
++v0;
continue;
}
}
else {
break;
}
goto label_5;
}
v2 = true;
}
label_5:
return v2;
}
}
脚本跑一下
感觉挺像刘诗诗的
继续看
发现还有另一张图 ··
觉得可以修改后缀拿到图片
android2.0
这一题用到了native层
改后缀解压出so文件拖进IDA看一下
找到核心代码
[Asm] 纯文本查看 复制代码 signed int __fastcall Java_com_example_test_ctf03_JNI_getResult(int a1)
{
signed int v1; // r4@1
const char *v2; // r8@1
char *v3; // r6@2
char *v4; // r4@2
char *v5; // r5@2
int v6; // r0@3
int v7; // r0@7
v1 = 0;
v2 = (*(*a1 + 0x2A4))();
if ( strlen(v2) == 15 ) // v2=input flag
{
v3 = malloc(1u);
v4 = malloc(1u);
v5 = malloc(1u);
Init(v3, v4, v5, v2, 15);
if ( !First(v3) ) // v3=fgorv
goto LABEL_14;
v6 = 0;
do
{
v4[v6] ^= v3[v6];
++v6;
}
while ( v6 != 4 );
if ( !strcmp(v4, &unk_2888) )
{
v7 = 0;
do
{
v5[v7] ^= v4[v7];
++v7;
}
while ( v7 != 4 );
v1 = 0;
if ( !strcmp(v5, "AFBo}") )
v1 = 1;
}
else
{
LABEL_14:
v1 = 0;
}
}
return v1;
}
大致的意思是把flag分成了三段
v3 = malloc(1u);
v4 = malloc(1u);
v5 = malloc(1u);
每一段进行了不同的加密
然后再进行逐个输出
看一下这里的数据
First
[Asm] 纯文本查看 复制代码 signed int __fastcall First(char *a1)
{
int v1; // r1@1
int v2; // r0@3
signed int v3; // r1@3
v1 = 0;
do
{
a1[v1] = 2 * a1[v1] ^ 0x80;
++v1;
}
while ( v1 != 4 );
v2 = strcmp(a1, "LN^dl");
v3 = 0;
if ( !v2 )
v3 = 1;
return v3;
}
脚本跑出来是
#out:v3=fgorv
second:
if ( !strcmp(v4, &unk_2888) )
{
v7 = 0;
do
{
v5[v7] ^= v4[v7];
++v7;
}
while ( v7 != 4 );
v1 = 0;
[Asm] 纯文本查看 复制代码 if ( !strcmp(v4, &unk_2888) )
{
v7 = 0;
do
{
v5[v7] ^= v4[v7];
++v7;
}
while ( v7 != 4 );
v1 = 0;
就相当于与First异或前四位
#out:l{sra
第三个也如此
#out:asoy}
整理一下
flag{sosorryla}
做下来感觉整体难度不难,但小弟是第一次做Android题,请大师傅们勿喷哈·~~
链接:https://pan.baidu.com/s/1ig-xmmGgg9LiDcIzHsjyrQ
提取码:yh28
复制这段内容后打开百度网盘手机App,操作更方便哦
|