栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

BUUCTFReservewp(3)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

BUUCTFReservewp(3)

[HDCTF2019]Maze

终于找到了一道用花指令的题了
先脱壳,然后进入ida

参考我的这篇文章:花指令
所以先把jnz给nop掉:
edit >> Patch program >> Change byte >> 前两位改为90

将花指令nop掉后,选中红色代码段,然后键盘p一下得到main函数

可以看到,wasd四个键控制移动,并且带有–和++的效果,然后后面一个if else判断语句,要让dword_408078 = 5,dword_40807C = -4,才能得到flag
点进去看看dword_408078和dword_40807C

那么7c初始是0,最后要等于-4,而s控制7c的–,这说明是往下走呗
shift + f12看字符串,然后shift+e提取数据得到:


关于为什么是7x10,那是看大佬wp知道的,我看大佬们做过的题也是7x10,所以就7x10.。。。。。

相册

这是个apk文件,我们需要下载一个jadk
下载完jadx和jadx-gui之后,用windows命令:java -jar jadx-gui.exe
启动jadx
打开apk文件,我们进行文本搜索:mail
找到函数:sendmail

我们查看:查找声明

找的是邮件,我们看通讯录

发现MAILSERVER,进入跳到声明

这个就是邮件了,而要进入MAILSERVER函数,首先要对NativeMethod.m进行base64加密

选中那一行继续跳到声明,发现是空的
而Java中的NativeMethod函数一般用于调用外部文件,所以我们ida打开so文件

我们解压apk文件,在lib文件夹里的armeabi文件夹里面有个so文件,用ida打开
找到字符串进行base64解密即可

也可以在exports里面找到NativeMethod_m
双击进入,发现被加密字符串

MRCTF{@_R3@1ly_E2_R3verse!}

进入ida,shift+f12找字符串

进入,查看伪代码,但好像看不了,也没有花指令,只能看汇编了


首先byte_4212C0是我们输入的字符串
edx在自增,之后跟1B(也就是27)进行比较,可以大胆猜测flag长度是27
然后byte_4212C0的第eax位跟al进行异或(al也就是eax的后八位,其实就是自增的位,也就是 i 了)
接着就和byte_41EA08的第eax位进比较(而byte_41EA08给出了字符串)
然后eax(可以看成 i 了)自增,继续循环
那么就能写出脚本:

#include
#include
#include
int main()
{
    char a[27] = {77,  83,  65,  87,  66, 126,  70,  88,  90,  58, 74,  58,  96, 116,  81,  74,  34,  78,  64,  32, 98, 112, 100, 100, 125,  56, 103};
    char flag[27];
    for(int i=0;i<27;i++){
        flag[i] = a[i] ^ i;
    }
    printf("%s",flag);
	return 0;
}

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016610.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号