-Qfrost-

Qfrost真是个fw(

【安卓】NDK配置与项目集成

折腾了一下Android+SO,用的环境是IDEA+NDK。主要因为IDE和各种环境依赖迭代太快,网上教程很乱,方法基本都是过时的,自己踩了很多坑,这里做个记录。 0x01 下载NDK 先去下载NDK : https://developer.android.google.cn/ndk/downloads?hl=zh-cn 解压,并将该目录配置到环境变量。 0x02 Java接口声明 Java......

【安卓】APK反编译、修改、重打包、签名

有的时候做安卓逆向,需要脱壳、patch SO、改代码等操作,需要对安卓apk包做修改。APK包是一个带签名的Package,对其做修改,需要进行反编译解包、修改其中内容、重打包、重签名四步操作。以下记录过程。 0x01 反编译解包 现有一APK,需对其进行调试,但是jadx解析其BuildConfig发现APK Debug的标志为false。需对其进行修改,而修改的第一步就是要先反编译解包......

OLLVM 之虚假控制流源码学习

本来这篇文章5月就写好了,然后因为各种各样的事情咕了好久,以至于今天才发出来。 虚假控制流,Bogus-Control-Flow(BCF),该⽅法通过在当前基本块之前添加⼀个基本块来修改函数调⽤图。这个新的基本块包含⼀个不透明的谓词,然后有条件地跳转到原始基本块。原始的基本块也将被克隆并填充以随机选择的垃圾指令,这⾥和我们在CTF中的⼀些看到的很多if…else…语句相对应了,中间会有很多的......

腾讯游戏安全实习总结与感悟

时光荏苒,7月13日入职,9月10日离职,入职之时宛若昨日。 先说说总体感受吧。说实话,我是带着批判的偏见和苦修的决心来到这边的,因为来之前,听到了大量有关腾讯游戏安全的负面消息:加班严重、天天日VMP、当工具人、没入职就被分配任务、实习生也有OKR等等… 但是来了之后才发现,原来这么轻松啊(× 每天九点半上班,晚上吃完饭了基本就不会干活了,混到8点领个夜宵券就下班,日VMP倒是确......

无痕HOOK(硬断+VEH)

平常常用的三环Hook通常是InlineHook和虚Hook,这两种Hook方式均是通过修改内存来劫持控制流,InlineHook通过修改代码段上的代码而虚Hook通过修改虚表指针。因为均对内存做了修改(且往往Hook的位置都是敏感内存),很容易被诸如CRC之类的手段检测到。故学习了一下三环下的无痕HOOK,注意这里的无痕指的仅仅是不对代码段等内存产生修改,而不是不会被发现。 在x86架构下......

强网杯 2021 Re 部分题解

不愧是强网杯,题目质量确实很高。不像现在很多某某杯,要么是卷大量大量的网上抄的代码,要么是为了难而偏各种奇奇怪怪的新架构 ezmath 这题就离谱,纯数学题,直接见识了各位师傅带数学家的数学功底 刚开始想的是用爆破,但发现不管是patch原程序用程序本身爆还是动态插桩还是模拟执行都爆不出来。猜测程序本身的check逻辑就是有问题的。直接扣算法算发现因为精度问题到后面全部截断了。 发现程序在m......

IDAPython学习笔记与traceRe的初步实现

PS:鉴于IDA7.5已经全面普及,IDAPython也由原来的Python2变成了Python3,同时带来的是IDA API的全面更新,故重写本篇博客 作为逆向菜鸡,已经重度依赖地表最强工具 ———— IDA Pro了,“OD是不可能OD的,只有靠IDA Pro才能勉强维持下去的样子”(你看那迷人的笑容,有了它还要npy干什么 逃… IDA Pro当然是最强的静态分析工具,但是在动调调试......

腾讯游戏安全竞赛 2021 WriteUp

熬了两夜,用血换了个第四(存哥yyds 初赛 题目说明: 下载ctf1.exe (md5:63b2b6e27bc8e95cf81e5be8e5081265)。 运行ctf1.exe,依据程序提示,找到flag。 评分标准:满分10分 flag(5分),找到flag并正确提交。 文档(4分),详细描述解题过程,如涉及编写程序,必须提供源代码。 时间(1分),正确提交flag的顺序。......

DebugPort清零实现反调试

在0环对3环的反调试中,最常用的应该就是DebugPort清零。先介绍一下这个DebugPort是什么东西。当调试器附加一个进程时,会调用NtDebugActiveProcess附加进程,这个函数会调用DbgkpPostFakeProcessCreateMessages告诉调试器创建调试线程(DbgkpPostFakeThreadMessages)并加载调试所需模块(DbgkpPostFak......

驱动实现内存读写

在一些强对抗环境下,当我们试图在三环下用API去读取别的进程的内存往往会收到诸多限制,比如r3花式hook,r0句柄降权,改进程结构体等等等等,稍微有些保护就可以使得 ReadProcessMemory、WriteProcessMemory 这些API失效,因此需要设计驱动能在r0层读写内存。 这里我的驱动读直接就是KeStackAttachProcess切换内核到要读进程的上下文去把那块内......