共计 5 篇文章

乐固静态脱壳

其实在一月份的时候已经发在博客了,由于之前文章并不是MD格式,而博客几经折腾,所以之前的文章并没有放上来。 前记 最近看到很多人在研究腾讯乐固,试了下以前做的脱壳机,并且看了下最新版壳的实现,发现还是换汤不换药。测试了几个不同版本的样本,发现之前写的代码还能用,故此重新编辑。 方法 将dex文件放在同级目录下文件名改为classes.dex运行即可,在同级目录释放repair.dex即为修复dex,代码简陋难免有BUG,敬请谅解 原理 乐固其实只对Dex头大小为0xE0的位置进行了加密,且采用的xtea算法的变形,所以直接抠IDA F5之后解密的代码部分即可 源码: #include ...

Gslab游戏安全竞赛

比赛挺遗憾的,第一题验证楞是没看出来是一个delta=0的等式,一直以为解出来的方程会有小数,无法想象程序怎么验证成功。导致没比赛资格了。数学功力还得加强,下面仅是学生组安卓的分析。 Round1 首先程序校验了key的格式,格式应该为XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX,长度为32,仅含有[0-9],[a-f] 其次取每一段进行运算,首尾进行运算,结果记为a1,a2,a3,a6(在接下来给的注册机中会有这一段运算) 接下来是对Code进行Base64解码,这里的Base64并不是标准的Base64,改动在于索引的下标进行了异或。所以解Base64也必须异或回去, ...

Ptrace注入

Ptrace函数 long ptrace(enum __ptrace_request request,pid_t pid,void *addr, void *data); 第一个参数决定ptrace的行为 PTRACE_ATTACH:附加到指定远程进程。 PTRACE_DETACH:从自定远程进程分离。 PTRACE_PEEKTEXT:从远程进程指定内存地址来读取一个WORD大小的数据。 PTRACE_POKETEXT: ...

360加固Dump

360主体逻辑部分采用的VMP虚拟机的模式,在case:29和case:33是其函数调用点,在其调用点下断点,监视其函数调用过程。 0x1.反调试 1. 时间反调试 逻辑流程: 通过time()获取时间计算时间差值 反反调试: 两次置函数返回值为0 2. rtld_db_dlactivity 原理分析: 如果程序在被调试的状态下, /system/bin/linker中会注册此函数 逻辑流程: 读取/ ...

GoogleCTF for APK

此文以记录分析路程 实在是懒。比赛的时候分析到一半就不想分析了。耐心不够啊!感觉质量还是很不错! Mainfest文件中定义在Android6.0SDK,在Android4.4.4中运行程序闪退。折腾了几个小时下AVD在Android6.0中跑还是闪退,只能硬着头皮看逻辑了。 Java层只有loadlibrary("cook"),分析so中JNI_ONLOAD,发现字符串全部被处理,使用的时候调用sub_1034解密,直接动态调试,顺便看下为什么会闪退。(自己编写一个Loader加载so调试会比较方便)。发现mkdir会失败。patch下(其实patch目的还是看后面字符串解密, ...