逆向开发
文章平均质量分 83
463666991
这个作者很懒,什么都没留下…
展开
-
某视频平台关键 so vm 解释器还原
曾经的曾经,我们还是懵懂无知 de 看待这个世界,直到被世界鞭挞的体无完肤,才对世界有一点点理解。将 metasec_xx.so 拖入 ida,ida 很自信的帮我们把 so 分析完毕,查看区段信息,ok,没有压缩或加密,可以直接静态分析了(ida server 总是断,用 unidbg 调试没有 ida 直观,lldb/gdb 又太古老了,不如使用 idapython 调 unicorn),找到入口,开始分析。原创 2024-09-03 19:05:17 · 938 阅读 · 0 评论 -
获得并修改硬件序列号--CPU、主板、内存、硬盘等(有源码)
上文两种方法,不需要重启的方法,要求是BIOS引导。需要重启的方法,UEFI和BIOS的都兼容。其中TYPE 0结构是BIOS information,TYPE 1结构是SYSTEM Information,其它类型大家查阅我附件里的文档。所以实现为Random序列号。发现ntStatus没有成功,返回STATUS_OBJECT_NAME_EXISTS,对象已经存在。经过详细测试,稳定运行。2.找到后再向后16个字节,看后面5个BYTE是否是关键字“_DMI_”,如果是,EPS表即找到。原创 2024-09-03 19:03:28 · 1481 阅读 · 0 评论 -
某东东的jdgs算法分析--适合进阶学习
需要分析b4、b5、b6,其实实际走完算法,主要是考验你对标准算法的熟悉程度(ida脚本Findcrypt),因为并没有出现魔改算法,自定义算法也没混淆,难度不大,但详细写篇幅有点大了,适合新手进阶,所以我说下算法具体实现,就不参照ida和unidbg调试过程手摸手复现;这个贴主要还是对算法本身结构部分描述会多点,憋问,问就是过去太久了,很多逆向过程不一定能还原(主要是懒,不想原路再走一遍),所以可能有部分跳跃的内容,会给具体代码,但对应的偏移地址和具体信息没有,给大家一个锻炼自己的机会 ( •_•)原创 2024-09-03 18:59:24 · 1363 阅读 · 2 评论 -
记录一次某app的sign分析过程(篇章一)新手推荐
今天我们分析case2里面的加密函数,也是最简单的,后面我会分析剩下两个算法的计算方法。定位到要分析的函数,由于位数疑似md5,所以使用龙哥的findhash插件,进行寻找。发现在此处进行引用,从函数功能可以分析出,这是在组包,并返回组装完的字符串。发现调用位置就在我们目标分析的函数里(如果没跟到的小伙伴可以打印堆栈)熟悉的朋友应该认出了,这个就是md5运算部分,我们寻找上层引用。算法肉眼可见的可以复现,所以我们进行hook入参和出参进行分析。至此,我们已经完成了最容易的一个分支的京东sign的计算。原创 2024-07-30 17:45:55 · 1086 阅读 · 0 评论 -
移植Youpk到Aosp10上
Youpk是一个很强大的框架,他的模块化组织形式非常新颖,但是随着安卓系统的不断更新,移植难度也非常大,由于使用了大量的api,导致移植有一定的难度,与fart相比,模块化的插桩更加优雅。已经有大佬做了fart10的移植(见参考文章3),我这里就不和他重复了,来尝试下youpk的移植,并去除特征指纹。测试设备:pixel1aosp10.0.0_r2(本来想移植fartext,失败了)(aosp11与10的api相关类似,可以自己尝试)原创 2024-07-30 17:44:20 · 576 阅读 · 1 评论 -
btrace:binder_transaction+eBPF+Golang实现通用的Android APP动态行为追踪工具
在进行Android恶意APP检测时,需要进行自动化的行为分析,一般至少包括行为采集和行为分析两个模块。其中,行为分析有基于规则、基于机器学习、基于深度学习甚至基于大模型的方案,各有各的优缺点,不是本文关注的重点,本文主要关注Android APP的动态行为采集。在做Android APP逆向分析时经常需要通过hook系统调用观察APP的行为,也需要一个动态行为追踪工具。btrace(原创 2024-06-14 21:39:24 · 1082 阅读 · 0 评论 -
appproxy 一个轻量级的VPN代理工具,支持HTTP, SOCKS5协议
基于flutter和tun2socks开发.appproxy是一个轻量级的VPN代理工具,支持HTTP, SOCKS5协议功能单只做代理,可分app代理, 双击修改配置逻辑比较简单, 主打一个能用就行.出于学习flutter的目的去做的,分享给大家,顺便帮我测试一下.加上上下游都有了哈哈.原创 2024-06-14 21:16:49 · 1179 阅读 · 0 评论 -
记一次全设备通杀未授权RCE的挖掘经历
这篇文章是在挖到这个0day挺久之后写的了。依稀记得当时刚挖到这个漏洞的时候,有着些许兴奋,但更多的是感到不易,因为我当时觉得这条调用链还挺深的,里面也牵涉到了不少东西。但是,当我如今再梳理这个漏洞的相关细节的时候,我觉得这条调用链其实也就那样吧,整个挖掘思路和利用思路都不算难,抛开影响范围,并算不上品相多好的洞QAQ。在挖这个洞的时候,我遇到的最大挑战就是逆向分析了,我觉得这里的逆向难度还是比较大的(当然我逆向水平也很菜)。原创 2024-06-14 21:13:10 · 679 阅读 · 0 评论 -
微信小程序反编译/解包
A:使用 wxapkg 的 scan 功能,联网状态下会获取小程序名称。或者删除目录下所有文件再打开一次小程序。⚠新版功能更丰富,但转为闭源,订阅制收费。本文使用 2.0 免费版本。Q:小程序目录下文件太多了,找不到要解包的小程序?A:在微信的设置找到文件路径,小程序文件位于。付费使用最新版,免费使用流传最后一版免费版本。下载可执行文件,或者下载源码编译。使用 unpack 功能解包小程序。使用 scan 功能解包小程序。微信版本:3.9.10.19。Q:如何找到小程序文件位置?wx 子命令支持更多操作。原创 2024-05-24 17:26:50 · 2270 阅读 · 0 评论 -
绕过最新版bilibili app反frida机制
它应该是使用了一些反hook的手段,没有必要和它正面对抗。简单描述一下我的绕过策略,创建一个fake_pthread_create函数,它只有一条ret汇编指令,然后hook来自libmsaoaidsec.so的前2次对dlsym的调用,返回fake_pthread_create函数的地址,这样就达成了欺骗它调用fake_pthread_create函数的目的。输出如下,在加载libmsaoaidsec.so后,调用了2次dlsym获取pthread_create函数,然后进程就终止了。原创 2024-05-24 17:14:12 · 2007 阅读 · 0 评论 -
VM逆向,一篇就够了(下)
虚拟化变异组合保护。我们主要了解一下虚拟化,VMProtect首先会将受保护的代码转换为等价的虚拟代码片段,然后交由虚拟机执行,该虚拟机是VMProtect嵌入到受保护程序中的,因此受保护的程序不需要第三方库活模块即可运行。更为夸张的是,VMProtect允许使用多个不同的虚拟机来保护同一个应用程序的不同代码片段,这大大增加了破解难度。原创 2024-05-24 17:10:14 · 527 阅读 · 0 评论 -
VM逆向,一篇就够了(上)
vm题算是逆向中比较难的一种题型了,就在这里详细的记录一下。程序运行时通过解释操作码(opcode)选择对应的函数(handle)执行。进行初始化工作。在这个函数里,规定了有几个寄存器,以及有几种不同的操 这样看不明显,创建结构体修复一下,结构体长这个样子123456789 12345 修复完的初始化函数123456789 如果rip指向的操作码为F4就返回。调度器,任务是根据opcode选择函数执行123456789101112 循环,找到opcode对应的函原创 2024-05-24 17:04:48 · 947 阅读 · 0 评论 -
通过修改物理内存实现跨进程内存读写
习一下利用修改物理内存来跨进程内存读写系统:win10 21h1 x64编译环境: vs2022 详情见附录。原创 2024-05-24 16:54:18 · 1025 阅读 · 0 评论 -
一种简单实用的ollvm反混淆的方案与源码
我是一名从事反欺诈&风控&设备指纹相关的工作,最近对ollvm的如何逆向的问题进行了学习与思考。ollvm是一个开源免费的so混淆工具,对于逆向的小白来说简直是灾难性的存在。这个例子是超简单,我想每个人都可以学会跟掌握,原创 2024-05-24 16:50:48 · 637 阅读 · 0 评论 -
某短视频sig3算法分析
这篇如果写的详细一点的话至少可以写5篇,unidbg,trace技巧,crc32,白盒aes,hmacSha256,我写成一篇确实有点一口吃成大胖子的感觉.可能不太适合刚入行的朋友吗,不过这个作为国内数一数二的短视频加密难度还是很可以的,有基础的可以细细品味一下.原创 2024-04-25 01:17:42 · 1585 阅读 · 2 评论 -
android脱壳:一种使用native进行抽取壳脱壳的方法,native版本的frida-fart
写rxposed的时候,搞了很多模块,其中有一个远程调用脱壳的,但是当时使用的是rmi远程调用,因为一些问题无法使用,可能是对抗问题,也有可能是技术问题,所以我又换了一种远程调用方式。android的dex加固,有整体dex加固,抽取加固,dex vmp,java2c,虽然有这么多,但是其实就脱壳主要是两个方面,第一个是整体dex脱壳,第二个就是在整体dex脱壳的基础上进行dex加密函数还原。抽取加固,dex vmp,java2c这些加固方式都以函数为粒度,进行函数代码的保护。原创 2024-04-25 00:45:37 · 1240 阅读 · 1 评论 -
Android某钉数据库的解密分析
在对aes_decrypt分析发现就是aes算法,算法分析对应aes 128,196,256加密的方式,就是128字节对应4*4矩阵加密,具体怎么操作自己baidu,发现加密方式采用了128,也就是10轮计算,5:现在还有一个问题就是java参数是怎么生成的,具体是过程就省了,自己往回跟踪就可以搞定,具体放在xml文件com.alibaba.android.rimet_preferences字段dt_bee_db_phone_*下面的值进行md5得到得到32位值。在这个so文件中,能发现。原创 2024-04-25 00:42:17 · 1405 阅读 · 2 评论 -
安卓真机无root环境下的单机游戏修改-IL2CPP
之前在研究手游的il2cpp修改,选取了作为研究对象,由于手上没有root的机子,于是安装在了MuMu模拟器上但是很快发现了问题,游戏只有arm的lib,由于一系列原因,导致我无法获取到的基址在尝试了很多方法后都无法完美的解决这个问题,最终只能考虑安装在真机上了但是目前并没有对机子root的打算,于是选取了注入的方案,这样没有root也可以对游戏进行修改了hhh可以手动操作去理解原理,参考这篇文章当然我这种懒汉肯定是选用自动化方案啦,使用objection来自动化patch apk。原创 2024-03-09 01:08:31 · 1413 阅读 · 0 评论 -
记录一次某茅台MK-V参数的逆向过程
根据maps中映射的librand.so的基址+偏移,hook不上指定函数,猜测是通过映射等其他手段重新加载了so,请教各位大佬,so使用了什么反调试手段?java层hook MT-V 参数的构成,发现把时间戳、固定字符串和一个空串传入调用了native函数,来自librand.so。1、java层获取时间戳、固定字符串和一个空串3个参数,调用librand.so中的native函数。4、取MD5的前26位字符拼接之前生成的一位随机字符,一共27位,即MT-V参数。1、so使用了什么反调试手段?原创 2024-03-09 01:05:01 · 523 阅读 · 0 评论 -
逆向分析 FSViewer 并写出注册机
最近在整理之前的资料, 发现了一篇几年前刚学逆向那会儿写的文章, 是跟着看雪一位大牛的文章做的, 但逆向方法不同, 应该算是自己能逆向出算法的第一款软件了, 发出来纪念一下借鉴了看雪@深山修行之人大牛的文章:FastStone Image Viewer注册算法分析+KeyGen。原创 2024-03-09 01:03:04 · 1032 阅读 · 0 评论 -
记一次某汽车app白盒aes还原过程
学逆向一年了 今天第一次写一篇完整的文章 样本难度不高 混淆不算太严重 部分符号没有抹去 才有了攻击点希望这篇文章能对正在学习移动安全的朋友有所帮助。原创 2024-03-09 01:01:11 · 911 阅读 · 0 评论 -
CTF黑客精神:算法还原
这题的解法有很多,可以通过so文件的静态分析,直接将结果写入文件达到解题的目的,不过核心思想肯定是希望我们通过逆向他的算法来获取flag.接下来我将详细的分析算法逆向的过程。原创 2024-02-03 01:16:45 · 1049 阅读 · 0 评论 -
某站平台的签名算法分享
然后用jadx打开xxx.apk包,全局搜索sign字符串,在众多函数方法中,找到一个SignedQuery函数,跟进去看,发现又个loadLibrary(xxx),那么直接告诉我是在一个so里。分析代码,发现关键在 check_app_key_get_type和global_key,一个是app key获取type,还有一个存着类似于secret key的 global key。分析包 看到路径参数如下。原创 2024-02-03 01:01:54 · 906 阅读 · 0 评论 -
使用unicorn模拟执行去除混淆
在分析某app的so时遇到了间接跳转类型的混淆,不去掉的话无法使用ida f5来静态分析,f5之后就长下面这样:本文记录一下使用python+unicorn模拟执行来去掉混淆的过程。原创 2024-02-03 00:59:23 · 1116 阅读 · 0 评论 -
某ttEncrypt算法的简单分析
花了几个小时快速分析的,所以并未能的完全的分析他的整个流程。只能是通过一些快速分析的手段进行快速的定位以及验证!到最后才发现他的整个基本都是这个样子比如一开始的JNI_OnLoad方法,有空还想把那个指令的执行也分析一下,看一下他是如何入参出参以及执行方法!unidbg的简单调试so的方法简单修正aes的key初始化流程然后大佬们就可以判断是否有必要继续看下去了那按照惯例都看一下他们的实际值了x0嘿,还有引用,看看又是哪里是sha512哪里的结果x1-->0x10x2。原创 2024-01-19 12:51:09 · 1050 阅读 · 1 评论 -
逆向分析 160个CrackMe五星052
逆向分析 160个CrackMe 052闲来无事,工作上有调整,等待来年安排,日常的学习还是不能松懈,好久没搞2进制了,最近正在刷pwn和CrackMe,看到了一个160集合感觉不错,刷了几周了,做了20多个了吧,也不知道哪个好,随便搞了下,感觉这5星级的还是挺有意思的,故分析发文。原创 2024-01-19 12:44:20 · 1513 阅读 · 0 评论 -
Hook入门与抓包
Frida 的 介 绍 是 “Frida 是 平 台 原 生 App 的“Greasemonkey”,专业一点来说就是一种动态插桩工具,可以插入一些代码到原生App的内存空间去动态地监视和修改其行为,这些原生平台可以是Windows、Mac、Linux、Android或者iOS,同时Frida还是开源的。原创 2024-01-19 12:40:34 · 1275 阅读 · 0 评论 -
【Android逆向】记录一次某某虚拟机的逆向
很明显,有关VIP的数据都在此,使用XPosed来修改这些成员变量,即可达到对显示UI的修改,即使服务器对这些数据有校验也不影响,至少在UI层面已经成功了。学了一段时间的XPosed,发现XPosed真的好强,只要技术强,什么操作都能实现...打开抓包工具,通过对两者的对比,发现是其中少了一些数据,所以才会加载失败。使用抓包工具检查网络请求,当点击底部的导航栏的时候,应用会发送网络请求。,当请求成功的时候会将用户的信息保存起来并移除广告?,算法助手对应用进行了常见功能的Hook,最重要的是。原创 2023-12-15 20:35:41 · 1513 阅读 · 0 评论 -
逆向经历回顾总结
将自己的逆向经验做个总结,希望新手对逆向大方向能快速了解。高手有啥不一样的经验也可以讨论讨论。回顾逆向这几年,就是个攻防不断升级,更明显的体现了那句“逆水行舟,不进则退”。好久没研究技术了,不知道高手们又在深挖哪块的难点,让我用小说里的话感叹一句“啊~,仙路尽头谁为峰...”原创 2023-12-15 20:21:04 · 848 阅读 · 0 评论 -
flutter逆向 ACTF native app
算了一下好长时间没打过CTF了,前两天看到ACTF逆向有道flutter逆向题就过来玩玩啦,花了一个下午做完了.说来也巧,我给DASCTF十月赛出的逆向题其中一道也是flutter,不过那题我难度降的相当之低啦,不知道有多少人做出来了呢~原创 2023-11-12 22:28:22 · 1578 阅读 · 1 评论 -
快手协议算法最新版
2. 内容特征分析:快手的协议算法会分析视频的内容特征,如标签、描述、音乐、场景等,以及视频的视觉特征,如图像、颜色、动作等。3. 推荐策略分析:快手的推荐策略可能涉及多个因素,如用户兴趣、视频质量、热度等。然而,一般来说,协议分析的目标是理解算法系统中各个组成部分的功能和作用,以及它们之间的相互关系。快手的协议分析是指对快手算法系统进行分析,以了解其推荐内容和个性化用户体验的机制。原创 2023-11-01 17:44:31 · 675 阅读 · 0 评论 -
抖音协议最新版
主页信息、主页视频数据、发布作品、发布图文、验证可靠、验证点选、扫码登录协议、视频点赞、视频举报、视频详情解析(获赞、评论数、收藏数、无水印地址等)、视频评论、视频评论信息、视频评论点赞、用户关注、用户举报、用户资料、用户更改资料、用户粉丝和关注的用户详情、直播上榜人气协议、直播间数据信息、直播间点赞、直播间发言、直播间举报、直播间商品数据、web端全部数据接口、绕验证、ttwid、绕验证获取主页视频详情。原创 2023-11-01 17:32:34 · 1297 阅读 · 9 评论 -
抖音协议算法最新版
2. 内容推荐:内容推荐算法分析视频的内容特征,如标签、描述、音乐、场景等,以及用户的喜好,来推荐相关的视频。在抖音协议算法中,强化学习可以用于优化推荐策略,通过不断尝试和评估不同的推荐策略来最大化用户的满意度和参与度。抖音的协议算法是指用于推荐内容和个性化用户体验的算法系统。这些算法根据用户的兴趣、行为和偏好来推荐适合他们的视频内容,以提供更好的用户体验。# 用户-物品评分矩阵。原创 2023-11-01 17:25:52 · 779 阅读 · 2 评论 -
【逆向】Base64编码解码及逆向识别
1、识别代码中的“=”通配符2、识别Base编码表,静态编码表可以在IDA“string”窗口查看,有些动态拼接的则需要手动识别3、识别代码中对数据的左移右移操作4、最主要的是理解编码解码原理,比如编码时通常都会用3个字节一组来处理比特位数据,这些特征都可以用来分析识别。原创 2023-10-22 18:13:32 · 1100 阅读 · 0 评论 -
Android微信逆向--实现发朋友圈动态
最近一直在研究Windows逆向的东西,想着快要把Android给遗忘了。所以就想利用工作之余来研究Android相关的技术,来保持对Android热情。调用微信代码来发送朋友圈动态一直是自己想实现的东西,研究了一下,果然实现了,遂写下本文当作记录。本文主要分析发送纯文字朋友圈动态和发送图片朋友圈动态。原创 2023-10-22 18:11:00 · 1260 阅读 · 2 评论 -
Hook原理--逆向开发
fishhook的源码地址为fishhook的主要方法有两个还有一个结构体查看代码结构为,将红色圈起来部分移入到代码中,即可使用fishhook来hook代码。上面讲述了Hook的几种技术方式以及fishhook的原理探究,以及如何让别人的app实现自己的代码。下面我们对此总结一下,写了一个本篇博客的整个过程便于大家整理,希望对大家有所帮助加深理解。原创 2023-10-22 18:09:07 · 1340 阅读 · 0 评论 -
iOS逆向工程之Theos
接下来我们就要使用theos来创建我们的工程了,创建工程也是比较简单的,就是调用我们theos目录中bin下的nic.pl命令。当然我们此处创建的是application_modern类型的工程,所以我们就选2即可,当然,如果你想创建tweak,那么就选11即可,下方我们选择的是第二个模板。接着我们要做一些编译打包前的准备工作,SDKVERSION是编译工程时所使用的SDK,因为本机Xcode中是9.3的SDK,所以我们知道的SDKVERSION是9.3。开门见山,下方就是我们要实现的效果。原创 2023-10-22 18:06:12 · 1819 阅读 · 0 评论 -
对一个变速器原理的分析
在HyperV里叫Overlay Page,简单理解就是贴一张新的A4纸到原来的纸上,如果要禁用,那就把贴上去的A4纸撕下来,将原来的A4纸原样“显示”出来,纸上的内容还是原来的样子。这个运算的目的则是在CPU的tsc频率与Win的QPC频率之间算一个系数,用于频率转换,因为QPC在新一点的机器上一般都是建立在TSC基础之上(CPU要支持iTSC),在支持iTSC的情况下,QPC频率是代码写死的固定10MHZ,TSC频率却取决于CPU,tsc频率肯定不会等于10Mhz,那么必然要在中间做一层转换。原创 2023-10-11 18:17:35 · 450 阅读 · 0 评论 -
PC版企业微信逆向之消息发送CALL-找不到参数文本消息内容,但是确定这就是消息发送CALL
获取UI文本字符串长度 DuiLib.DuiLib::CRichEditUI::GetTextLength。清空UI文本框DuiLib.DuiLib::CRichEditUI::SetText。//消息发送CALL如下。原创 2023-09-22 20:07:25 · 1718 阅读 · 3 评论 -
猫眼逆向协议抢票开发
为什么会出现滑块, 用selenium打开的浏览器, 和正常用户打开的浏览器不同。#登陆按钮: #login-form > div.fm-btn > button。# 加速度越小,单位时间的位移越小,模拟的轨迹就越多越详细。# 单位时间为0.2s来统计轨迹,轨迹即0.2内的位移。# 位移/轨迹列表,列表内的一个元素代表0.2s的位移。# 密码输入框: #fm-login-password。#1.3 输入账号, 输入密码, 点击登陆 (滑块)# 账号输入框: #fm-login-id。原创 2023-09-22 20:05:02 · 4956 阅读 · 9 评论