自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 JSVMP纯算法py复原案例

某乎x-zse-96,纯算法复原详解

2022-12-06 15:38:29 684

原创 浅谈小程序逆向

怀着学习的心研究小程序

2022-09-16 15:06:10 2714 3

原创 密码学之MD5

因为最近遇到了个md5的魔改算法,想要复原最好的办法就是了解md5源码,观察做了哪些地方的魔改,然后在源码的基础上去改,就可以很快的复原。所以来记录一下标准的md5,以及用py复原时所遇到的坑。从总体上看,md5主要有init、update、final组成。init是初始化的值,后面的运算都是以这里初始化的四个值为起点开始运算的。update是将传入的字符串做分块处理,每一块有64字节,然后循环将每一块传入transform中做运算。如果传入的字符串或分块后的最后一块不满64字节,那么这一块将会由

2021-12-20 20:29:54 1329

原创 xhs shield分析-MD5篇

案例:小H书,版本:6.90.0本文主要讲述了小H书的shield算法的分析过程,以及用py复原算法时所遇到的坑。关于调试方面,frida足以,虽然麻烦了点。如果能用ida调试就最好,不过他的反调试我没有过多的研究,就没有走ida动态调试这条路。看到还有很多大佬用unidbg的,这个工具我还没有做过多的了解。因为看到了一个改内核可以绕过所有反调试的,之前尝到了ida动态调试的甜头,所以打算试试这一招。话不多说,开始分析。复原shield,两个native函数,initialize、intercept是

2021-12-17 12:02:34 2206 2

原创 某搜索app的native层分析

某搜索引擎,微信公众号文章,pc端没有时间排序功能,只有app可以筛选时间。通过抓包看到请求的request和response都是加密的,ok开始分析搜索大法,直接搜url,就可以直接定位关键点。request加密和response解密的位置似乎都很清晰了,加解密都是通过SCoreTools.so中的函数来实现的。这里定位还是比较容易的,直接打开so文件开始分析。ida打开so文件,查看导出表,四个静态注册的函数,先来看一下请求的encrypt。通过hook观察,第一个参数是固定的一个ur

2021-11-16 10:11:32 346

原创 初识ollvm控制流平坦化

app:B站, 版本:随便搞了个最新版目标:分析sign算法1. 算法定位B站的java层定位并不难找,直接搜索大法即可定位到生成sign的native函数。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编

2021-10-26 10:05:13 909

原创 安卓逆向之某手sig

版本: 6.8.2通过抓包可以看出,sig和__NS_sig3都是请求数据时所必须的字段,本文主要说一下sig。sig的关键代码定位比较容易,直接全局搜索就可以看到。不难看出这里调用了CPU.a方法,返回值应该就是我们想要的sig的结果,直接点过去看下a方法的实现。这里是调用了core.so中的getClock方法得到的sig,三个参数中,我们重点需要看一下第二个参数bArr。可以直接hook这个方法,来把这个字节数组转成字符串,看下是将那些信息传进去做了处理。从hook结果可以看出,第二

2021-03-21 10:51:16 772

原创 安卓逆向之ida的那些坑2脱坑

先来说下遇到的问题:调试某个app的so时,ida动态调试使用jdb附加,断点断在了linker处,然后开始加载so文件,目标so还没加载出来,app闪退,动态调试终止。之前一直以为是什么反调试,我还一直百思不得其解,因为我要逆向的这个app是没加壳的,java层反调试也没hook到,说明程序根本没运行到反调试这一步。毕竟反调试肯定要写在代码里,现在初始化都没完成就崩了。查遍各种资料都没有见到在linker加载so的时候会崩溃这种情况。后来终于在看到一篇文章时大受启发,了解到了armeabi-v7a和a

2021-02-21 16:52:28 1075

原创 安卓逆向之java层反调试isDebuggerConnected

在做某app的so层逆向时,发现ida附加jdb,在linker加载so的时候崩了。发现了java层的Debug.isDebuggerConnected()。虽然不是因为这个原因导致的ida动态调试失败,但是在网上查阅怎么绕过java层反调试的时候,发现全网都是抄一份百度加固的Debug.isDebuggerConnected(),说是改smali然后回编译。然而根本没用,现在的app都有签名校验,改完回编译app根本打不开。所以在这里记录一下绕过方法。其实很简单,直接hook系统函数isDebugge

2021-02-17 18:57:19 1230

原创 安卓逆向之IDA的那些坑1

安卓逆向之IDA的那些坑1由于工作需要,终于接触到了安卓逆向这条路,需要做一个so层加密的app,于是开始了ida的疯狂踩坑之路。之前没有过这方面的经验,甚至连汇编和c都看不懂,可以说是一步一个坑,一周下来似乎也没什么进展,光是在ida调试流程这一块就花了好多时间,本文主要分享一下我在ida动态调试时遇到的一些坑。我的第一个ida版本是7.5版本,可以正常打开so文件,汇编转c也都正常,也就是说静态查看代码是没问题的。但是当我想要debugger调试时,问题就来了正如图片所展示的一样,debugge

2021-01-24 22:20:06 1884

原创 openpyxl实现excel自适应列宽

openpyxl实现excel自适应列宽最近在做一些自动化生成excel的工作,为了提高excel的可读性,想要通过代码实现excel自适应列宽。查了一些资料,并没有找到相关的模块。所以,自己写了一个方法来适应列宽。大概的思路就是,遍历每一列,找出每一列中长度最大的单元格,然后根据最大的单元格,更改此列的列宽。设置A列,列宽为20sheet.column_dimensions[‘A’].width = 20 # 生成列名字典,只是为了方便修改列宽时指定列,key:数字,从1开始;value:列名

2020-06-02 12:04:36 7970 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除