2021
文章平均质量分 62
Codeoooo
爱好学习及分享,若文章侵权,优先联系本人删帖处理。
展开
-
SHA算法 (sha0 sha1源码魔改)
SHA (Security Hash Algorithm) 是美国的 NIST 和 NSA 设计的一种标准的 Hash 算法,SHA 用于数字签名的标准算法的 DSS 中,也是安全性很高的一种 Hash 算法。SHA-1 是第一代 SHA 算法标准,后来的 SHA-224、SHA-256、SHA-384 和 SHA-512 被统称为 SHA-2一、SHA-1 算法。原创 2023-06-17 11:12:18 · 2335 阅读 · 0 评论 -
selenium 操作已打开界面 配置插件
最近一年内,由于工作比较忙,没怎么更新博客,后期会陆续更新一些有意思的东西。本次记录一个实质的需求,是采集一个国外网站,且加密是akamai方式,进行了cookie中_abck的生成。所有我们进行操作已打开的的浏览器并配置代理插件访问外网。后_abck就是对一些headers|data进行多次加密生成的, 后期可以公布该JS加密生成的方式。原创 2023-06-17 11:14:34 · 1956 阅读 · 0 评论 -
公众号历史文章采集
采集公众号历史文章,且链接永久有效,亲测2年多无压力。原创 2023-06-17 11:14:27 · 1698 阅读 · 0 评论 -
crontab和apscheduler自动任务
本次介绍两种自动任务,一种为linux自动任务crontab,另一种是基于python自动任务apscheduler。**原创 2023-06-17 11:18:55 · 1510 阅读 · 0 评论 -
选哪儿字体加密破解
大致分析:常见的字体加密解决方案就是通过 下载字体进行关系映射 还原数据。采集网址 https://www.xuanzhi.com/ (园区|土地|厂房|仓库)思路和方法都通用。原创 2023-06-17 11:30:08 · 1520 阅读 · 0 评论 -
好租写字楼字体加密
前面说到一篇字体加密文章,你说巧不巧,工作中又遇到一个字体加密的反爬。基本思路:常见的字体加密解决方案就是通过 下载字体进行关系映射 还原数据。原创 2023-06-17 11:32:08 · 1752 阅读 · 0 评论 -
Android NDK静态注册 动态注册
5-使用jni.h中JNI_onload进行判断:注册是否成功(JIN_onload:系统调用,相当于java中的psvm:public static void main)2.1-编写(配置)两个mk文件:application.mk/android.mk。4-编写(配置)两个mk文件:application.mk/android.mk。3-编写C/C++代码,导入.h头文件,实现我们.h头文件中方法。作用:用于java代码和C++、c代码的交互(代码混编);创建了4个文件:.c、.h、.mk、.mk。原创 2023-06-17 11:19:28 · 2075 阅读 · 1 评论 -
Dalvik smali语法
"if-le vA, vB, :cond_**" 如果vA小于等于vB则跳转到:cond_**"if-ge vA, vB, :cond_**" 如果vA大于等于vB则跳转到:cond_**"if-ne vA, vB, :cond_**" 如果vA不等于vB则跳转到:cond_**"if-lt vA, vB, :cond_**" 如果vA小于vB则跳转到:cond_**"if-gt vA, vB, :cond_**" 如果vA大于vB则跳转到:cond_**原创 2023-06-17 11:30:26 · 1412 阅读 · 0 评论 -
模拟器检测
模拟器特征:联系人通讯录,蓝牙设备,电池电量,CPU等。模拟器常用的有,夜神,逍遥,雷电等。原创 2023-06-17 11:31:05 · 1496 阅读 · 0 评论 -
Xposed 框架检测机制
Zygote是Android的核心,每运行一个app,Zygote就会fork一个虚拟机实例来运行app,Xposed Framework深入到了Android核心机制中,通过改造Zygote来实现一些很牛逼的功能。Zygote的启动配置在init.rc 脚 本 中,由系统启动的时候开启此进程,对应的执行文件是/system/bin/app_process,这个文件完成类库加载及一些函数调用的工作。原创 2023-06-17 11:33:37 · 2141 阅读 · 0 评论 -
Fiddler特殊中间人劫持数据
如果遇到加密严重的情况下,又想拿到数据,可采取该方法。原创 2023-06-17 11:33:27 · 1418 阅读 · 0 评论 -
Base64原理及魔改更换码表
Base64可以将ASCII字符串或者是二进制编码成只包含A—Z,a—z,0—9,+,/ 这64个字符( 26个大写字母,26个小写字母,10个数字,1个+,一个 / 刚好64个字符)。这64个字符用6个bit位就可以全部表示出来,一个字节有8个bit 位,那么还剩下两个bit位,这两个bit位用0来补充。Base64的编码规则是将3个8位字节(3×8=24位)编码成4个6位的字节(4×6=24位),之后在每个6位字节前面,补充两个0,形成4个8位字节的形式,那么取值范围就变成了0~63。原创 2023-06-17 11:31:12 · 3319 阅读 · 0 评论 -
MD5加密及Python源码魔改
MD5全称:message-digest algorithm 5翻译过来就是:信息 摘要 算法 5。原创 2023-06-17 11:31:22 · 1717 阅读 · 0 评论 -
DES对称加密及三重DES(3DES)
DES算法全称为Data Encryption Standard,即数据加密算法,它是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。原创 2023-06-17 11:32:14 · 2555 阅读 · 1 评论 -
PBE对称加密
PBE加密跳出了DES和AES的加密模式,综合对称加密、信息摘要算法的优势,形成了一个对称加密的特例。其实PBE加密并不是独创了一个新的算法,而是先使用MD(SHA)系列算法将口令和salt计算出一个key出来,然后用这个key作为DES(AES)的加解密key,这样DES和AES的key不便于记忆且需要计算机计算的问题就解决了。可以看到Java支持的PUB算法大部分是基于DES的,没有AES的,所以想要使用PBE可以使用Bouncy Castle提供的开源包。40到1024(8的倍数)原创 2023-06-17 11:33:44 · 1482 阅读 · 0 评论 -
CRC16算法
1 装一个 16 位寄存器,所有数位均为 1。2 取被校验串的一个字节与 16 位寄存器的高位字节进行“异或”运算。运算结果放 入这个 16 位寄存器。3 把这个 16 寄存器向右移一位。4若向右(标记位)移出的数位是1,则生成多项式1010 0000 0000 0001和这个寄 存器进行“异或”运算;若向右移出的数位是 0,则返回3。5 重复3和4,直至移出 8 位。6 取被校验串的下一个字节7 重复3~6,直至被校验串的所有字节均与 16 位寄存器进行“异或”运算,并移位8次。8 这个原创 2023-06-17 11:32:01 · 1582 阅读 · 0 评论 -
Xposed环境安装
Zygote是Android的核心,每运行一个app,Zygote就会fork一个虚拟机实例来运行app,Xposed Framework深入到了Android核心机制中,通过改造Zygote来实现一些很牛逼的功能。Zygote的启动配置在init.rc 脚 本 中,由系统启动的时候开启此进程,对应的执行文件是/system/bin/app_process,这个文件完成类库加载及一些函数调用的工作。原创 2023-06-17 11:34:19 · 2503 阅读 · 0 评论 -
RSA非对称加密
本例中公钥为 (n,e) = (4757 , 101),私钥为 (n,d) = (4757 ,1601) ,仅(n,e) = (4757 , 101) 是公开的,其余数字均不公开。对于本例中的 4757 你可以轻松进行因数分解,但对于大整数的因数分解,是一件很困难的事情,目前除了暴力破解,还没有更好的办法,如果以目前的计算速度,破解需要50年以上,则这个算法就是安全的。乙收到密文 [4296,2458,3263],并用自己的私钥(n,d) = (4757 ,1601) 解密。求解,此处省略具体过程。原创 2023-06-17 11:34:27 · 1392 阅读 · 0 评论 -
ARM汇编基本指令
LDR R8,[R9,#4] R8为待加载数据的寄存器,加载值为R9+0x4所指向的存储单元 R8=*(R9+4)寄存器间接基址偏移寻址:LDR R0,[R1,#-4]将R1寄存器的值-0x4的值作为地址,取出地址中的值给R0。STR R8,[R9,#4] 将R8寄存器的数据存储到R9+0x4指向的存储单元 *(R9+4)=R8。寄存器间接寻址:LDR R0,[R1] 将R1寄存器中的值作为地址,取出地址中的值赋予R0。寄存器中放的数据:可以是字符串,可以是数,也可以是一个地址,它可以放各种类型的数据。原创 2023-06-17 11:34:38 · 1429 阅读 · 1 评论 -
IDA调试模式
1》打开ida,选择debugger-第二项-Remote ARMlinux(第四项) Suspend on library load/unload库的加载和卸载断下。 Suspend on thread start/exitE程的退出或启动断下。 4》进来后,勾选三项: debugger/options(倒数第二项) 该挂载端口为 程序启动端口,非IDA启动端口,可以用DDMS查看。 3》出来进程列表:选择要调试的程序(可以ctrl+f,搜索包名)值如果为0就需要改成1。原创 2023-06-16 10:56:35 · 1708 阅读 · 0 评论 -
IDA调试快捷键
NOP函数MOV R0,R0(00 00 A0 E1/00 1C)p: 识别为函数 ( u | p联合使用转化可识别汇编 )ALT+B: 搜索16进制 搜索opcode 如ELF文件头。清空指令(00 00 00 00/00 00)CTRL+ALT+B: 打开断点列表。F2: 断点|修改地址值|提交修改;CTRL+F7: 运行到函数返回地址。查看当前所有断点 Ctrl+Alt+B。运行到函数的返回地址 Ctrl+F7。空格键: 列表视图&图形视图。ALT+T: 搜索文本。原创 2023-06-16 10:55:51 · 1775 阅读 · 0 评论 -
Frida详细环境安装
我这里安装的是 pip install frida==12.10.4。在刚刚cmd 窗口 /data/local/tmp目录下。运行 ./frida-serer xxxx。4.启动frida-server。若结果如图所有,即为成功。原创 2023-06-16 10:55:20 · 3619 阅读 · 0 评论 -
Frida模板Hook
【代码】Frida模板Hook。原创 2023-06-16 10:54:46 · 1408 阅读 · 0 评论 -
Xposed多情况Hook
2.HOOK ClassLoader类中的loadClass方法。1.Xposed之遍历指定类所有内部类,但不包括匿名内部类。原创 2023-06-16 10:54:59 · 1794 阅读 · 0 评论 -
Xposed插件编写
所需要环境 :jdk sdk xposed激活安装xposed激活安装 :https://blog.csdn.net/weixin_38927522/article/details/119832717。原创 2023-06-16 10:51:53 · 1550 阅读 · 0 评论 -
IDA调试检测
查看 /proc/pid/status 目录下的 tracePid 是否为0 若为0 则未被调试 若不为0 则被调试。time()函数 time_t结构体 clock()函数 clock_t结构体 gettimeofday()函数。比如说:我们写了一个demo apk 来调用so文件(要调试的apk比较大 环境比较复杂 调试的时候容易跑蹦)如果IDA动态调试走到此断点处 IDA会正常的处理此断定指令 但是我们的信号处理函数已经将此指令处理完毕。有可能在内联汇编中做此反调试 反调试设置的地方在其周围。原创 2023-06-16 10:51:12 · 1609 阅读 · 0 评论 -
Frida Hook常见算法及堆栈跟踪
【代码】Frida Hook常见算法及堆栈跟踪。原创 2023-06-16 10:52:26 · 2182 阅读 · 0 评论 -
APK文件介绍
去除广告和弹窗,撇开不存在于smali的这种情况,容易的就是 可以在XML中寻到Activity,难的就是寻不到,发生这种情况时, 就要分析代码,程序逻辑,抓住关键信息,界面和函数。.apk文件==>反编译apk(dex/配置文件/资源文件(apk反编译败)) ==>修改关键文件实现自己的目的==>重新打包签名(无法重新打包) ==>apk安装后无法 运行。把.class文件转化成Davik VM支持的.dex文件(.java=>.class=>.dex)adb install 安装包路径)原创 2023-06-16 10:22:28 · 1635 阅读 · 0 评论 -
Dalvik
1.了解dalvik寄存器dalvik中的寄存器都是32位2.寄存器之v命名法与p命名法参数寄存器 P0-Pn局部变量寄存器 V0-Vn3.dex文件反汇编工具 smali.jar\ddx.jar4.类型smali==>JavaV voidZ boolean B byte C charS shortI intJ longF floatD doubleL java类[ 数组5.字段Lpackage/name/ObjectName;->FieldName:Ljava/lang/S原创 2023-06-16 10:21:01 · 1369 阅读 · 0 评论 -
常见支付逻辑
logcat字符串定位(Egame支付成功/Egame支付Cancel/order id)=>搜索字符串,向上分析,回溯分析/函数名替换。logcat字符串定位(Unicom支付cancel/Unicom支付成功)=> 在下面类修改处理,可以用goto或switch方法。logcat字符串定位(购买道具:[] 成功/购买道具:[] 失败)=>在 下面类修改。程序逻辑分析=>最重要的又是流程分析/流程图=>核心(层次)中国移动 46000、46002、46007、46020。电信爱游戏搜索方法名。原创 2023-06-16 10:21:26 · 1367 阅读 · 0 评论 -
Android NDK介绍
动态链接(crtbegin_dynamic.o/crtend_android.o/加载 器 (system/bin/linker))gnustl(c++异常/rtti/stl)=>gnustl_static/gnustl_shared。静态链接(libc_init_static)/动态链接程序 (libc_init_dynamic)静态链接(crtbedin_static.o/crend_android.o)build_executable(可执行文件)静态链接/动态链接(动态链接程序/动态链接库)原创 2023-06-16 10:21:51 · 3931 阅读 · 0 评论 -
IDA工具使用
交互式反汇编器,是典型的递归下降反汇编器。导航条蓝色 :表示常规的指令函数黑色 :节与节之间的间隙银白色 :数据内容粉色 :表示外部导入符号暗黄色: 表示ida未识别的内容IDA主界面IDA View三种反汇编视图:文本视图、图表视图、路径视图Hex View 十六进制窗口Struceures 结构体窗口Enums 枚举窗口Imports 导入函数窗口Exports 导出函数窗口Strings 字符串窗口空格键:切换文本视图与图表视图ESC:返回上一个操作地址G:搜索地址和符号。原创 2023-06-16 10:21:13 · 2749 阅读 · 0 评论 -
DEX | ELF 文件结构介绍
directMethods://对应DexClassData结构中的directMethods直接方法字段。virtualMethods:///对应DexClassData结构中的virtualMethods虚方法字段。iFields://对应DexClassData结构中的instanceFields实例字段。sfields://对应DexClassData结构中的staticFields静态字段。ELF Header-->ELF文件头的位置是固定的。u8/unit64_t=>表示8字节的无符号数。原创 2023-06-16 10:22:00 · 1381 阅读 · 0 评论 -
DEX类加载
dexopt\Optmain.cpp:extractAndProcessZip() //读取和抽出dex,加上odex文件头,设置优化选项,可以看作DEX文件优化的主控函数\vm\analysis\DexPrepare.cpp:dvmContinueOptimization()//写入odex文件,可以说优化与验证工作的完成就是写入odex文件\vm\RawDexFile.cpp:dvmRawDexFileOpen()//DEX文件解析的主控函数。原创 2023-06-16 10:22:10 · 1385 阅读 · 0 评论 -
加壳加固厂商特征
针对apk中的classes.dex文件进行处理,放入特定的文件中,通 过native代码来对其运行时解密使用厂商(娜迦/爱加密/梆梆)对原dex文件整体压缩加密,保存在壳代理的dex文件尾部,加 载到内存中解密运行使用厂商(360)将classes.dex文件中的方法代码进行提取,抽取方法,在运行 时对其进行动态解密还原使用厂商(娜迦/梆梆)原创 2023-06-16 10:24:22 · 1929 阅读 · 0 评论 -
一到四代壳解决方案
1.打开dex文件时存在dex优化验证时的打开和虚拟机本地native打开两种,分别对应着一代和二代脱壳。2.加载类时:defineclassnative函数虽然类加载过程的函数很多,但我们一般脱壳只在defineclassnative函数。这里列举出类的整个加载过程的函数defineclassnative函数分析与类加载概念defineclass函数分析findnoinit函数分析(包括了dvmLookupClass)loadClassFromDEX函数分析。原创 2023-06-16 10:24:13 · 1602 阅读 · 0 评论 -
微信小程序逆向
微信小程序逆向大致思路:抓包分析–>加密参数查找–>小程序源码获取–>分析加密逻辑。原创 2023-06-16 10:23:29 · 2606 阅读 · 0 评论 -
CVS投中app数据采集
加密就是 md5( TextUtils.join(“|” + getApiSalt() + “|”, arrayList) + “|” + str3)再追击EncryptUtils下的encrypt方法,发现该加密方法在package cn.com.cvsource.utils包下。思路:(可采用xposed,Frida进行hook,或者调试smali代码) uuid设备信息(随机生成),ct(时间错),mt(未定义)4.考虑为mt字段影响所致,开始分析app。搜索发现如下代码:ct,mt一目了然。原创 2023-06-16 10:24:32 · 1406 阅读 · 0 评论 -
图片去除噪点
【代码】图片去除噪点。原创 2023-06-16 10:22:48 · 1668 阅读 · 0 评论 -
新氧医美app逆向
使用函数堆栈打印 hook 一下, 得到了request_id 的生成方式, 可以明显的看出,是一个包名+ 时间戳的形式。MD5 使用的是库里的 然后key的生成方式是 MD5("lavion_soyoung@2013_"+"手机号"+"_"+"密码")在做分析时,记得换个工具也许会开扩思路,在jadx中寻找关键字时 没有找到参数对应的关键字,可以。看看登录包的内容,记得登录两次,将两次的内容导出,比较其中你的区别。我在做逆向的时候喜欢先搜索一下url参数,在一个正规的app中,搜索url效率是比较高的。原创 2023-06-15 14:40:11 · 1845 阅读 · 0 评论