NepCTF2024

news/2024/12/22 14:09:35/文章来源:https://www.cnblogs.com/wgf4242/p/18622079

re

0zandroid

unidbg模拟跑一下

package re;import com.github.unidbg.AndroidEmulator;
import com.github.unidbg.Module;
import com.github.unidbg.linux.android.AndroidEmulatorBuilder;
import com.github.unidbg.linux.android.AndroidResolver;
import com.github.unidbg.linux.android.dvm.*;
import com.github.unidbg.memory.Memory;import java.io.File;public class appdebug extends AbstractJni {public static AndroidEmulator emulator;public static Memory memory;public static VM vm;public static DalvikModule dm;public static Module module;public appdebug() {emulator = AndroidEmulatorBuilder.for64Bit().setProcessName("com.example.clickmemore").build();memory = emulator.getMemory();memory.setLibraryResolver(new AndroidResolver(23));vm = emulator.createDalvikVM(new File("apks/CTF_re/a.apk"));vm.setJni(this);dm = vm.loadLibrary(new File("apks/CTF_re/libplay.so"), false);dm.callJNI_OnLoad(emulator);module = dm.getModule();}public void getBytes() {/*public native byte[] encrypt(int i, String str);*/DvmClass MainClass = vm.resolveClass("com.example.clickmemore.MainActivity");String method = "encrypt(ILjava/lang/String;)[B";for (int i = 0; i < 0xffff; i++) {DvmObject<byte[]> result = MainClass.callStaticJniMethodObject(emulator, method, i, "bangboo!Knows!!!");byte[] array = result.getValue();System.out.println(i);if (array[2] == 37 && array[3] == 80 && array[4] == 68 && array[5] == 70 && array[6] == 45 && array[7] == 49 && array[8] == 46 && array[9] == 52) {System.out.println(i);System.out.println("Yes"); // 10714return;}}}public static void main(String[] args) {appdebug appdebug = new appdebug();appdebug.getBytes();}
}

friida过调试。然后改成17013 点一下修改。再点确认。得到flag


// frida -U -f com.example.clickmemore -l a1.js
Java.perform(function () {// hookisDebuggerConnected()var c = Java.use('android.os.Debug')c.isDebuggerConnected.implementation = function () {return false}c.waitForDebugger.implementation = function () {console.log(this.waitForDebugger());return false}let AntiCheater = Java.use("com.example.clickmemore.AntiCheater");AntiCheater["isDebug"].implementation = function () {return false;};MainActivity["lambda$onCreate$0$com-example-clickmemore-MainActivity"].implementation = function (calendar, random, layout, v) {console.log(`cilck1点点我的11`);this.clickCount.value = 10713;this["lambda$onCreate$0$com-example-clickmemore-MainActivity"](calendar, random, layout, v);console.log('end')};
});

flag{enenneenneneen,neneenenen!neen!}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/856785.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

专业数据恢复软件iFindDataRecoveryv9.2.3 绿色便携版

睿共享*关注我 前言 iFinD Data Recovery一款特别实用的数据找回工具,它很厉害,能帮你在SSD硬盘和Windows10系统上找回丢失的数据。而且,它还能深度扫描并恢复各种主流数码相机里的RAW格式照片,速度超快,用起来也很稳定顺畅,就算是新手也能轻松上手使用。 安装环境 [名称…

【Rive】Android与Rive交互

1 Android与Rive交互的常用接口 1.1 RiveAnimationView参数 <app.rive.runtime.kotlin.RiveAnimationViewandroid:id="@+id/rive_view"android:layout_width="match_parent"android:layout_height="match_parent"android:adjustViewBounds=&q…

【Rive】混合动画

1 混合动画简介 ​ 【Rive】动画 中介绍了 Rive 中动画的基础概念和一般动画的制作流程,本文将介绍混合动画的基础概念和一般制作流程。Unity 中混合动画介绍详见→ 【Unity3D】动画混合。 ​ 混合动画是指同一时刻多个动画按照一定比例同时执行,这些动画控制的动画参数…

Command-line Environment

Command-line Environment 任务控制 shell会使用UNIX提供的信号机制去执行进程间的通信,进程收到信号的时候,会基于信号改变其执行 停止 停止任务:^c 信号:SIGINT在进行find遍历目录时,使用^c,发出SIGINT到该进程,停止了该任务 课程中提供了一个脚本,忽略了SIGINT信号的…

【嵌入式开发】探讨下PC端的BLE开发

目前在嵌入式设备端,实现了不少ble的功能。比如音频传输,图片传输。一般要方便演示,需要开发个对应的手机app。但是我又是很偷懒的人。想着,python这个工具这么强大,在PC端可以用python几行代码就实现掉吧? 说干就干! 根据同事的推荐,用了python的bleak蓝牙库。 我是在…

Jmeter 修改Sampler result 结果信息

首先说一下,jmeter的Sampler result是什么? Jmeter 的Samplers result 是jmeter在向服务器发送请求后,接收到服务器响应的基本信息的展示,如 sample 的开始请求时间、发送的内容大小、基于协议的响应状态码和响应消息等信息。 什么是基于协议的响应状态码和响应消息。比如h…

Shell Script

Shell Script 赋值操作 foo=bar echo $foo注意: 不要使用空格分开shell 将会把foo当作一个程序 转义 Bash通过使用和""来定义字符串 ""会将字符串中的变量转义 echo "String is $foo"会将字符串中的变量原样输出 echo String is $foo函数 函数内…

聊一聊 C#前台线程 如何阻塞程序退出

一:背景 1. 讲故事 这篇文章起源于我的 C#内功修炼训练营里的一位朋友提的问题:后台线程的内部是如何运转的 ? ,犹记得C# Via CLR这本书中 Jeffery 就聊到了他曾经给别人解决一个程序无法退出的bug,最后发现是有一个 Backgrond=false 的线程导致的。恰巧在我分析的350+dum…

聊一聊 C#后台线程 如何阻塞程序退出

一:背景 1. 讲故事 这篇文章起源于我的 C#内功修炼训练营里的一位朋友提的问题:后台线程的内部是如何运转的 ? ,犹记得C# Via CLR这本书中 Jeffery 就聊到了他曾经给别人解决一个程序无法退出的bug,最后发现是有一个 Backgrond=false 的线程导致的。恰巧在我分析的350+dum…

offset explorer如何安装?附获取方式

前言 大家好,我是小徐啊。我们在Java开发的时候,有时候需要进行大数据的开发,或者需要使用消息队列,这个时候,就需要用到kafka这个组件了。而对于我们平常运维来说,最好有一个可视化的连接kafka的工具。今天小徐就来介绍一款连接Kafka的工具,是offset explorer,介绍下w…

NUMA的取舍与优化设置

NUMA的取舍与优化设置在os层numa关闭时,打开bios层的numa会影响性能,QPS会下降15-30%;在bios层面numa关闭时,无论os层面的numa是否打开,都不会影响性能。 安装numactl: #yum install numactl -y #numastat 等同于 cat /sys/devices/system/node/node0/numa…

2024-2025-1(20241321)《计算机基础与程序设计》第十三周学习总结

这个作业属于哪个课程 <班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(2024-2025-1计算机基础与程序设计第十三周作业)这个作业的目标 <深刻学习C语言,反思一周学习,温故知新>作业正文 ... 本博客链接https://www.…