- 博客(31)
- 收藏
- 关注
原创 docker 加速源被ban解决方法
cat > /etc/docker/daemon.json <<EOF{ "registry-mirrors": ["Docker Search"]}EOF
2024-10-08 14:10:46 161
原创 akamai解混淆(ast)
在文件中搜索 &= 并且在下文中有 return xx.pop()的时候,下断点,清除浏览器缓存,刷新。进入网站后,简单看一下cookie,标准的akamai系列abck。本文相应ast已放入星球,有需要可以自取。全局搜索 &= 找到混淆的js文件。最后用ast进行替换即可。
2024-09-24 16:22:19 787
原创 227还原实战(七)终章
等于控制流相关标识符之一,如果有初始化值(没有代表不是一个地方),则判断初始化的值是否和控制流初始化的相同,不同就代表不是一个地方,不是一个地方就代表了需要进行修改,因为作用域不同,但标识符相同,会造成污染。既然有防止变量污染,就肯定会有和全局变量的标识符相重合的,如果直接还原,就会报错,该标识符不能使用 var 定义,所以我们就需要进行处理,修改局内标识符的名字,全局的不变。回看控制流,可以发现他们都是由执行函数包裹的,这类基本上都有一个特点,就是防止变量污染,这也是我们接下来的重头戏。
2024-08-12 14:06:02 498
原创 227还原实战(六)控制流专题
-1 这里)==value =\= al_next 这里和上面是一样的,只不过是相反的,不详细说==后面的所有还原基本都会有相反的,就不一一细说了,对着看就可以了==首先判断其中一个的分支的下一个指向是不是指向自己 即==value =\= co_next or value =\= al_nex==他们两个存在一个==相互调用的关系==,且==有一个分支是相同的==如果==当前控制流的下一个指向==等于==上一个控制流的另一个指向的下一个指向==,那么就是 if else 嵌套 if else。
2024-08-12 13:56:35 1192
原创 227还原实战(五)控制流专题
它这个==虚假分支是无法通过合并节点然后取判断它是否正确的==,因为有些虚假分支是指向一个==错误的分支==,有些虚假分支是指向一个==正确的分支(但流程不正确)==,你==无法判断它指向的分支是错误的还是正确的或者流程是否正确==,无法有效的进行一个区分。这个时候就只能去它的源代码上面看,看他虚假分支的判断,最后你就会发现,它虚假分支防的不是环境防的是还原的人(我踩过坑,就是想通过判断来进行还原),所以就只能去看它的虚假分支有多少个,然后记下来,还原就好。
2024-08-09 09:50:25 1272 2
原创 227还原实战(四)
像这种可以看图1,这个时候我们就需要在==父节点==找类似图 1-2 的第一个箭头所指的表达式,赋值表达式,像图 1-2 这种就是找到了的情况,图 1 这种就是在父节点找不到==赋值表达式==的,所以我们也要针对其做出不同的写法。然后我们遍历控制流中的代码块,将对控制流数字进行一些运算操作的代码拿出来,但是要设置一个区间,因为代码块中第一块是纯粹的赋值,没有做什么就不需要,最后一段就是控制流,也不需要,我们只需要中间的这一块。在父节点找不到,就直接在当前节点的父节点上方插入,然后就和上面一样,结果如下。
2024-08-08 13:47:38 1336 1
原创 227还原实战(三)
遍历==变量声明语句==VariableDeclaration(var x, x2, x3),然后我们判断它声明的变量是不是大于1,如果是大于一的话,他就有可能含有赋值语句(x3 = "str"),就需要进行处理,如果只有一个的话,不需要管它,将这个变量名收集就好。最后就在当前节点的下方插入 含有初始值的数组,然后没有初始值的数组里有没有数据,没有的话就删掉当前节点,有的话就将当前节点声明变量的 declarations 数组修改成 init_arr。转换 if else 结果图。
2024-08-08 10:40:32 467
原创 227还原实战(二)
处理赋值表达式首先我们要判断当前的赋值表达的右边是不是三元表达式,三元表达式的 左边 和 右边 是不是也是三元表达式如果上诉判断都通过了话,就分别用 三元的 左边 和 右边 和 赋值语句的左边,以及赋值语句的 赋值符号构建一个赋值表达式,最后分别以这两个赋值表达式,构建一个 if else 语句,然后在当前节点替换,处理结果如下。
2024-08-07 17:32:39 373
原创 227还原实战(一)
再还原前,我们需要从还原的三元中取出三个东西,分别是 判断语句(test)、判断成功执行的语句(consequent/左边)、判断失败执行的语句(alternate/右边), 之后我们就需要对当前三元的 左边 和 右边 进行处理,他们两个的处理方式是一样的,如下。如果逻辑表达式的右边是逗号表达式,就将逗号表达式里的所有式子取出套上表达式语句,然后用 blockSta 包裹,最后以逻辑表达式的左边为 判断体 构建 if 语句。如果不是逗号表达式,就判断当前逻辑表达式的 逻辑符号是不是 “&&” 符号。
2024-08-07 10:16:10 622 1
原创 某直聘每日算法变更分析
确认了第一步之后,我们就可以用191+3=194这个点进行检索,直接搜索194,会有好几个,那么怎么确认是哪一个呢?这里可以看到还没有走出+3的for循环,且194后递增为195,那么可以判断这里是for循环递增,排除。boss变更算法块固定5个步骤,除了运算外还会有取反,那么日志里分析不出来的就是取反了,取这一段看,符合特征,操作后的变量递增,就是for循环在从数组里取值作操作。可以看到算法中一共三个步骤,那么就是取反两次,所以算法不动即可。继续往下走,日志就结束了,那么今日的算法就是。
2024-07-19 15:59:44 520
原创 epub最新某数破解,某数系列完结篇!
以这一组cookie为例子,解ck需要cd值以及cd相对应的cookie。解码cd 后获取到两个key和一个解码iv。将cookie值进行转换为数组,进行观察。3. 通过key解码cookie的数组。其中 15为新增校验数组,对应环境。至此,瑞数纯算校验点全部完成~解ck完成,接下来看一下变化。1. 解码cookie。
2024-07-15 13:13:38 443
原创 js-hooker
该项目是对开源项目进行二开,改写的hook脚本,新增了cookie添加形式的捕获,若有侵权,请联系博主删除。红色 : 删除cookie。黄色 : cookie更改。可以根据cookie状态跟踪目标cookie进行分析。形式为规则:cookie名,会在触发的时候下断。解释: 绿色: 新增cookie。建议配合油猴食用效果更佳~这里是debugger的规则,
2024-06-19 15:55:35 445 1
原创 探索JavaScript逆向工程与风控等级
JS逆向工程和风控技术之间的对抗是一个不断演进的过程。随着逆向技术的发展,安全措施也在不断升级,以保护代码和数据的安全。理解并实施适当的风控策略,对于保护JavaScript应用免受恶意逆向分析和攻击至关重要。在这个对抗中,安全意识和技术的不断提升是保持竞争力的关键。4o。
2024-06-13 21:19:38 884
原创 某直聘zp_stoken纯算法还原
这里是zp_stoken的生成位置,其中比较重要的就是z函数,seed与ts为两个接口返回的校验字符串。在ts和seed的运用上大概是这样,然后会传入一个环境数组一百多位的样子,通过校验环境得到。然后在将这一百多位和之前生成的大约60+位组合后作取反\加减乘除等运算,每日切换一次算法,其中包括环境,运行方式等。本博客纯技术交流使用,若有侵权,请联系博主删除。纯python还原算法,可并发。生成最后的zptoken。
2024-06-03 13:54:57 788 1
原创 字体加密破解日记
在 `CSS3 `之前,`Web` 开发者必须使用用户计算机上已有的字体。目前的技术开发者可以使用`@font-face`为网页指定字体,开发者可将心仪的字体文件放在 Web 服务器上,并在` CSS` 样式中使用它。1. `TTF`:这是Windows操作系统使用的唯一字体标准,`macintosh`计算机也用`truetype`字体作为系统字体。7. `WOFF`:这是一种网页字体格式,可以在网页中使用,也可以转换为`.TTF`格式用于桌面应用。
2024-04-02 10:00:46 1143
原创 某标局最新瑞数6vmp破解分析
关于有人问到的指纹相关问题,在这里做一个统一回复,他sha1的算法,他🐮他还原出来你传了啥阿,你就往里塞,你就把三国演义全文塞进去他也得给你过!对于vmp来说,最常见的方法无非就是日志断点了,在日志中检测一下,找一下关注的数值,然后进行算法还原即可。有效控制流是指在vm中对结果的生成数值产生改变的控制流,而不是环境校验等,熟悉的202页面与一个js文件在这一步可以做一个文件替换,防止后面调试的时候文件变化。当后缀中有数据的时候数值变更为1048627。第二步,打下脚本断点,跟进js文件中。
2024-04-01 11:18:50 1668 13
原创 ob混淆原理与破解方案(1)
对于网页来说,其逻辑是依赖于JavaScript来实现的,JavaScriptJavaScript代码运行于客户端,也就是它必须要在用户浏览器端加载并运行。JavaScript代码是公开透明的,也就是说浏览器可以直接获取到正在运行的JavaScript的源码。JavaScript 混淆完全是在 JavaScript 上面进行的处理,它的目的就是使得 JavaScript 变得难以阅读和分析,大大降低代码可读性,是一种很实用的 JavaScript 保护方案。
2024-02-01 11:40:13 3958 3
原创 AKAMAI系列产品反爬攻克日记
Akamai是一家提供内容传递网络(CDN)和云服务的公司。CDN通过将内容分发到全球各地的服务器,以减少网络延迟并提高用户访问网站的速度和性能。在其服务中,Akamai使用一种称为Akamai Cookie加密的技术来增强安全性和保护用户的隐私。Akamai常见的时1.75和2的版本,传递的数据是明文的数据就是1.75,2版本的数据是进行编码的TLS(传输层安全性)指纹是指一种用于标识和识别TLS协议连接的技术。TLS是一种加密通信协议,用于在计算机网络上保护数据的传输安全。
2024-01-30 10:52:08 3979 1
原创 TLS指纹校验原理和绕过
浏览器可以正常访问,但是用requests发送请求失败。后端是如何监测得呢?为什么浏览器可以返回结果,而requests模块不行呢?
2024-01-29 11:38:32 2058
原创 hook常用操作
就是 JS 是一种弱类型语言,同一个变量可以多次定义、根据需要进行不同的赋值,而这种情况如果在其他强类型语言中则可能会报错,导致代码无法执行。Hook 是一种钩子技术,在系统没有调用函数之前,钩子程序就先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,也可以强制结束消息的传递。例如对响应数据做一些格式化处理,或者当响应失败时,可以做一些失败提醒和纪录。请求拦截器:在发送请求之前,可以借助一些函数来对请求的内容和参数做一些检测。语句,会立即断下,最后将接收到的参数返回给原始的。
2024-01-25 15:49:09 650
原创 瑞数vmp-代码格式化后无法正常运行原因分析
最后总结下,对于外部代码,如果要格式化后代码能正常运行,那我们就要在格式化后搜索_$dG方法的代码,将这个方法还原成没有格式化的代码,即。对于动态代码,首先要找到入口函数,再将入口函数的代码首部改成function 方法名(){代码。两处都修改完后就可以使用格式化后的代码调试开发了,关于格式化代码,中间操作不建议通过复制黏贴方式完成,可能会让二进制数据丢失或者二进制数据并被转化为字符串字面量造成程序运行异常,可以使用babel工具进行处理!
2024-01-04 13:59:32 785
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人