自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 某ctv视频下载逆向思路

本文分享了作者下载视频站点的技术思路。去年工作中曾遇到该站点视频下载问题,当时采用取巧方案解决。最近为重温《亮剑》尝试重新实现,发现站点监测点虽少但因多线程机制调试较复杂。关键点在于:1)Node.js的fetch无法直接转换base64为buffer,需手动提取文件;2)需复现多线程回调函数;3)重点规避常见监测点。文章最后声明如有侵权将删除内容。

2025-07-14 19:23:35 1054

原创 猿人学js逆向比赛第一届第二十题

本文分析了某请求签名(sign)的生成过程。通过堆栈跟踪定位到sign函数后,发现其核心逻辑由WebAssembly(wasm)实现。研究采用两种方法:1)通过webpack3加载器导出wasm模块,补全环境后成功复现签名;

2025-07-12 20:14:08 1252 2

原创 猿人学js逆向比赛第一届第十九题

摘要:文章介绍了如何绕过加密参数直接使用curl_cffi库获取网页数据的方法。通过创建模拟Chrome 110浏览器的Session对象,可以成功获取页面内容,并附带了代码示例和运行结果截图。该方法适用于不需要处理加密参数的简单爬取场景。

2025-07-11 23:27:45 957

原创 猿人学js逆向比赛第一届第十八题

摘要:本文分析了某网站翻页请求的JavaScript加密逻辑。通过调试发现open函数被重写,需要添加t和v参数。进一步分析发现请求参数经过AES加密(CBC模式、Pkcs7填充),密钥和IV相同。验证表明使用固定鼠标轨迹也能通过校验,且第一页请求可不带加密参数。文章详细记录了加密算法定位过程和参数生成机制,为逆向分析提供了完整思路。

2025-07-11 18:48:13 1433

原创 猿人学js逆向比赛第一届第十七题

摘要:文章介绍了使用HTTP/2协议进行网络请求的实践方法。当HTTP/1请求出现问题时,通过改用HTTP/2协议解决问题。具体实现使用Python的httpx库,创建客户端时设置http2=True参数启用HTTP/2协议,其余请求代码与常规请求相同。文中包含两张截图,分别展示了HTTP/1请求的问题和改用HTTP/2后的解决方案。

2025-07-09 21:32:44 1049

原创 猿人学js逆向比赛第一届第十六题

本文介绍了对某网站控制台日志的分析处理过程:首先删除杂乱日志代码,定位到关键函数btoa被修改;然后通过AST反混淆技术还原732模块代码,并移除window和document检测点;最后成功获取window.md5函数,使用修改后的btoa函数完成请求。整个过程展示了逆向工程中定位、分析和还原混淆代码的技术方法。

2025-07-09 01:57:06 994 1

原创 猿人学js逆向比赛第一届第十五题

摘要:分析请求发现m参数由wasm导出的encode函数生成。通过将wasm文件本地化并导出encode函数,结合时间戳和随机数生成t1、t2参数,调用q函数计算m值。最终请求参数格式为"q(t1,t2)|t1|t2"。该方法成功实现了请求参数的逆向生成,可直接调用get_m函数获取有效请求参数。

2025-07-08 23:35:00 1010

原创 猿人学js逆向比赛第一届第十四题

本文分析了某网站的反爬机制,主要包括以下步骤: 代码预处理:通过AST还原混淆代码,手动删除eval检测点和死循环逻辑。 请求分析:定位到sp函数,发现其通过设置mz参数并请求获取v14和v142,最终计算生成cookie中的m值。 参数获取:从浏览器环境中提取指纹数据,编码后设置mz,并通过补环境的方式获取v14和v142。 m值生成:使用RSA加密(jsencrypt)和魔改的MD5算法生成cookie中的m参数。 请求构建:验证发现请求次数受限,通过Node API接口或循环调用E函数绕过限制。 最终

2025-06-28 19:42:15 1753 1

原创 猿人学js逆向比赛第一届第十三题

本文分析了动态cookie获取过程:通过删除目标cookie并设置断点,追踪到页面JS代码中设置cookie的位置。研究发现该cookie是加速乐验证的第一部分参数,可通过提取JS赋值代码并用Python复现获取。关键函数get_page_cookies用正则匹配JS代码,通过execjs执行获得cookie值,最终更新到会话中。该方法实现了对动态cookie的有效捕获,解决了验证参数获取问题。

2025-06-24 22:03:39 1072

原创 猿人学js逆向比赛第一届第十二题

文章分析了网页请求中的密文参数加密过程,发现仅有一个m参数采用字符串拼接和btoa编码方式。通过定位加密位置确认使用"yuanrenxue"+页码的格式进行base64编码,并用Python成功复现加密算法。最终给出了参数构造代码,其中m参数通过base64编码"yuanrenxue"与页码拼接字符串生成。 (字数:100字)

2025-06-24 21:39:04 915

原创 猿人学js逆向比赛第一届第十一题

摘要:通过jadax分析APK定位到MainActivity,发现sign签名生成函数。使用frida hook确认该函数后,尝试RPC主动调用但发现25秒延时。分析so文件发现延时机制后,改用unidbg模拟调用并补全Java环境,最终成功获取签名结果。将代码集成至Spring Boot框架提供API接口,解决了签名生成问题。整个过程涉及APK逆向、frida hook、so分析和unidbg模拟等技术。

2025-06-23 02:02:43 1078

原创 猿人学js逆向比赛第一届第十题

本文分析了网页请求中的反调试机制及参数加密过程。首先通过AST还原代码并hook debugger函数解决无限debugger问题;然后发现请求缺少m参数,通过调试发现XMLHttpRequest.open函数被修改;最后定位到关键参数来自接口返回,并实现动态获取。解决方案包括:1)使用hook绕过debugger;2)补全window.bEgd环境;3)Python代码动态获取接口参数并更新。最终成功获取分页数据,验证了参数生成逻辑的正确性。

2025-06-22 13:43:45 1611

原创 猿人学js逆向比赛第一届第九题

本文介绍了处理混淆JS代码的调试过程。首先通过AST还原代码并删除调试断点,发现页面JS被混淆后进行了替换处理。分析得出需要使用decrypt函数循环调用3次生成cookie,经判断该函数为RSA算法实现。通过正则提取动态时间戳参数并更新cookie后能访问页面数据,但API仍被拒绝。随后重新核对m参数生成逻辑,发现循环次数变化,最终从原JS代码中提取加密函数成功解决问题。整个过程展示了处理混淆JS的技术细节和调试思路。

2025-06-20 23:12:55 1103

原创 猿人学js逆向比赛第一届第八题

本文探讨了验证码识别的问题,提出通过图像处理和OCR技术结合的解决方案。作者首先使用OpenCV进行图像预处理,包括颜色过滤、二值化和膨胀操作,然后分割出单个字符。尝试了ddddocr和easyocr等现有模型,但识别效果不理想。文章分享了完整的Python处理代码,涉及颜色分析、噪声去除、字符分割等步骤,最终输出处理后的图像和识别结果。虽然当前识别率有待提高,但为验证码识别提供了可行的技术思路和实现方法。

2025-06-20 15:28:35 954

原创 猿人学js逆向比赛第一届第七题

本文分析了网页字体加密的解密方法。通过解析返回的woff字体文件,发现加密字符与页面数字存在对应关系。使用ddddocr动态识别字体,将误识别的"o"手动修正为"0"后成功解密数据。文章还探讨了如何追踪召唤师名称与胜点的对应关系,通过在Python中还原网页表达式验证了解密方法的有效性。整个分析过程展示了针对字体加密数据的逆向处理方法。

2025-06-19 18:13:58 1085

原创 猿人学js逆向比赛第一届第六题

摘要 本文分析了某网站加密请求的逆向过程。研究发现请求参数m和q采用RSA加密,其中m由时间戳和输入参数通过z函数生成,q为字符串拼接结果。通过定位到encode函数和RSA加密模块,成功还原了加密逻辑。在代码扣取过程中遇到window和navigator检测,通过修改为global对象解决。最终实现了Python调用JS加密函数获取数据,但发现浏览器与脚本的i参数差异可能导致风控限制,这是一处需要注意的风控点。该逆向过程展示了从加密定位到代码还原的完整分析链。

2025-06-18 20:23:25 936

原创 猿人学js逆向比赛第一届第五题

本文详细分析了某JavaScript代码的逆向过程,主要分为预处理、RM4hZBv0dDon443M参数分析和_$qF参数分析三个阶段。在预处理阶段,作者通过AST还原代码时遇到了死循环问题,通过增加数组长度判断和设置cookie值解决。在分析RM4hZBv0dDon443M参数时,发现其采用AES加密,并重点研究了_$pr参数的生成逻辑,通过函数替换和环境修改成功复现了加密过程。最后在分析_$qF参数时,发现其与pr参数最后一个元素相关,并给出了完整的参数生成代码。整个过程展现了JavaScr

2025-06-18 15:03:51 1430

原创 猿人学js逆向比赛第一届第四题

本文分析了网页DOM节点的解析与数据提取过程。文章首先通过响应字段和堆栈信息跟踪,发现数据被隐藏于带有j_key的class属性中。通过观察DOM节点的left属性,总结出四条排列规律,包括数值相加为零、特定倍数关系等。作者据此编写了处理代码,包括解析HTML、生成排序索引等关键函数,并手动构建了图片字典。最终实现的解析逻辑能够正确提取并排序隐藏数据,文中展示了关键代码片段和运行效果图,验证了该方法的有效性。

2025-06-16 00:30:38 936

原创 猿人学js逆向比赛第一届第三题

摘要:文章分析了网页翻页时自动发送的jssm请求,发现其通过beforeSend自执行函数触发。尝试用Python还原请求流程失败后,通过Fiddler对比发现浏览器和模拟请求的差异,最终从Fiddler中复制正确参数才获取有效结果。这表明该请求存在特殊校验机制,仅简单复制请求头可能导致失败,需精确捕获完整请求信息。

2025-06-15 19:54:50 965

原创 猿人学js逆向比赛第一届第二题

文章摘要: 本文分析了JavaScript反调试代码的处理方法。通过AST分析,识别并删除了包含debugger函数的定时器、检测代码格式化的可疑函数、以及导致死循环的console.log重写逻辑。针对global变量判断问题,修改了代码逻辑使其返回空字符串。最后验证了cookie生成逻辑的正确性,并成功获取了目标数据。整个过程展示了如何逐步识别和绕过JavaScript中的反调试机制,最终实现数据抓取目标。

2025-06-15 18:52:48 1098

原创 猿人学js逆向比赛第一届第一题

本文分析了JavaScript函数oo0O0的逆向过程。通过断点调试发现可疑的十六进制字符串,在控制台还原后确定关键点是通过oo0O0函数获取值并拼接。该函数内部使用eval执行经atob解码的字符串,并通过J函数进行替换操作。将解码后的字符串本地化处理后,与浏览器运行结果比对验证一致。详细实现代码可参考原文链接。文章展示了JavaScript代码逆向分析的基本方法,包括调试、解码和替换操作。

2025-06-15 15:39:51 974

原创 猿人学2025js逆向验证码比赛第一题(补环境)

其实题目挺简单的,但是有很多的点不注意就会进入蜜罐,进去了就半天出不来,看着文章写的挺顺利实际上我第一次做的时候遇到一个蜜罐就进去一次,甚至图像处理哪里,我还以为有什么压缩炸弹实际上并不是的,只是少了一部分需要拼接上而已,逆向还是要心细致一些。

2025-06-09 13:09:11 1864

原创 anti_content (0ar开头)

新anti——content 0ar版本

2025-02-21 00:58:24 499

原创 分享个新的反爬思路

将xhr请求放到浏览器插件中,且不允许页面刷新,页面刷新即关闭或作其他包括但不限于(跳转404,退出登录,关闭tab等),这样是不是就已经难以开始调试了,那么再加上现有的反爬策略混淆加密,vmp,wasm等,阁下们应该如何应对呢。当然插件不适用于大部分的网站,因为不可能为了你这个网页让用户去安装插件,这样网页的便捷性便失去了,但是企业公司内部网站却可以,试用此方案的可以是公司内部,币圈的,原宇宙那些。

2024-10-23 08:16:12 190

原创 某气网168城市空气质量排序

今天无意间翻到了去年的面试题,当时的我对于这堆全是字符的返回值,真是头疼无比,但我觉得今天的我应该没问题,那么就直接开始。技术仍需加强,还可以用python还原完整算法,但是我觉得没必要了,纯粹自娱自乐,没有业务需求。大佬们如果有更好的意见欢迎与我交流。

2024-06-03 17:26:03 409

原创 web逆向常用的6种断点

这样一来,当用户点击按钮时,代码会暂停执行,你就可以检查事件监听器的代码,查看它是如何响应事件的,以及代码中是否存在任何错误或问题。当你设置了一个事件监听断点时,它会在特定的DOM事件被触发时暂停JavaScript代码的执行,允许你检查事件监听器的行为和代码的执行情况。当你设置了一个异常捕获断点时,它会在JavaScript代码中抛出异常时暂停代码的执行,以便你可以检查异常的类型、位置和代码的执行情况。条件断点是一种在调试过程中设置的断点,但与普通的断点不同,它只在满足特定条件时才会触发。

2024-04-24 18:02:48 2313 2

原创 scrapy

Scrapy架构图(绿线是数据流向)scrapy Engine(引擎):负责spider、ItemPipeline、Downloader、Scheduler中间的通讯、信号、数据传递等。Scheduler(调度器):它负责接受引擎发过来的Request请求,并将其获取到的Response交还给Scrapy Engine(引擎),有引擎交给Spider来处理。

2023-10-09 21:56:46 273 1

原创 某财经报逆向记录

一开始看到webpack就发憷了,所以找了几天webpack如何调用某个函数,但是知道后面无意间看到崔老的案例,也是webpack是直接扣js的方法,这才想起来js逆向原本是扣js而不是调用js文件,所以已有一定要长个记性,不要上来就发憷不知道怎么办。可以看到这是调用类似于MD5加密时间戳生成的,现在该w的值了,注意,这里连着进行3次加密,应该是发了不同的包,而经过测试发现在最后一次发包才是获取到数据的包。经过重复的测试,发现v的值和y的值是固定的,而b的则是每次都变化,定位js函数的位置。

2023-08-17 17:57:52 848 1

原创 猿人学第六题

明面是告诉你window.o大于等于6的话就会刷新网页,那背地里的意思不就是如果winow.o等于6就不是正常参数了,我一开始忽略了这点苦恼了我半天。提示:在控制台中window无法定义,所以在第28行的window={}要注释掉,而使用自己定义的window。可以看到他是先调用了r函数,在调用了z函数,那么这就是加密的地方了,先看一下这段代码。在r函数传递了一个t和window.o两个参数,正好在截图中发现可以看到t的来源。提示:经过我的不断测试发现他在r函数中的这个判断,是有特别意义的。

2023-08-01 13:50:39 440 1

原创 猿人学第五题

然后又来了一次的_0x4e96b4['_$pr']['push'](_0x474032(_$yw));现在定位_0x4e96b4['_$qF'],直接搜索发现他在1444行和146行都有,那么下断点看走的那个最终发现他走的是1444行的赋值操作。然后再来定位_0x4e96b4['_$pr']找他的生成来源,像这样直接搜索_0x4e96b4['_$pr'],然后都打上断点。经过尝试后发现他是调用了4次的_0x4e96b4['_$pr']['push'](_0x474032(_$Wa));

2023-07-31 16:41:00 2400 1

原创 qq音乐js逆向

最后发现同样的参数出来的结果却不一样,只能补环境了,这里一定要记得document和navigator。发现他是通过调用这个o函数,传t.data,进去生成的,那么直接扣js就可以了。顺着堆栈往上爬,找加密的位置 ,发现找了几个都不是,那么直接搜搜sign试试,昨天试了网易的js,今天就想着把qq音乐的也看看,OK,下面直接开始。发现一下就能看到,sign的赋值,那么直接进去下断点。是在window里面的,而不是单一定义的。首先抓包找接口,发现有一个sign加密。下面附上对应的Python代码。

2023-07-29 20:40:00 2321 15

原创 网易云js逆向

正好他这个有name和id,那么现在直接看有没有加密就好啦,如果没有直接发包就行,结果总是不能令人满意的,发现他携带了一个params=xxx的东西,这个是什么呢?初步估计就是搜索的东西了,因为他也没有在其他的地方传递参数,那么就只有这个地方了,那咱们进去看看他的来源。在调用js的时候发现与直接运行js输出的加密结果就可以获取到数据,而通过python的。首先通过点进去几个歌的详情页,发现单歌曲仅有id又区别,那么直接找歌id的来源就好了。抠js的过程据说用了哪里直接放在哪里就可以了,我这里就不演示了。

2023-07-28 22:14:56 1192 2

原创 猿人学第四题

现在接着测试,发现图片有偏移,与他返回来的顺序有变化,看到上面的有style样式那可能有样式偏移,计算这个偏移量可是烦了我好几天,如何通过偏移量计算出图片顺序呢?这句话是判断,判断经过MD5加密后的数据是否存在于img标签,如果相等那么添加display为none,相当于把这些与MD5加密的数据存在于img给隐藏掉了。这句话显示删除了他原本的类在添加一个新的类,相当于把原来数据包发回来的img标签的class给删掉,并添加一个新的空类。先求出应该在的顺序,在按照顺序的大小进行排序得出最终顺序。

2023-07-26 18:45:00 426 1

原创 猿人学第三题

按照请求原理,把请求头拿过来直接用原请求头理论上是没有问题的,但是不知道为什么不好使,终于经过我一系列百度的情况下得知requests的header排序是会按照默认顺序进行排序的而session则不会,那么接下来直接定义session就ok啦。可以看到在ajax中定义了一个beforeSend,这个不清楚什么意思,直接百度看到是在发送请求前,那这段代码的意思就是在发送页面接口前,先发送一个/jssm的请求,那直接去看这个请求干了什么。那就直接发包看看能不能获取到。

2023-07-21 12:57:35 144 1

原创 猿人学第一题

猿人学刷题平台,第一次接触这种逆向平台,有什么可以优化的,希望大家可以提出来哈

2023-07-18 21:51:05 115 1

原创 mysql笔记

​ 不是将表中所有数据都查出来,是查询出来符合条件的。​ 语法格式:​ select 字段1,字段2 ,字段3…​ from 表明​ where 条件;select …from …where …having …​ 以上关键字的顺序不能颠倒1. from2. where4. having5. select​ 从某张表查询数据,先经过where条件筛选出来有价值的数据,对这些有价值的数据进行分组,

2023-05-23 07:10:40 303 1

原创 解决青龙面板白屏问题记录

只是记录了解决过程,不喜勿喷

2022-05-26 22:30:00 2559 2

原创 记录问题:spring使用依赖注入弹出警告org.springframework.core.LocalVariableTableParameterNameDiscoverer inspectClass

记录问题:org.springframework.core.LocalVariableTableParameterNameDiscoverer inspectClass警告: Using deprecated '-debug' fallback for parameter name resolution. Compile the affected code with '-parameters' instead or avoid its introspection: com.xxx.xxx.xxx

2022-02-26 08:17:00 5457 1

原创 python输出正金字塔和倒金字塔,以及输出九九乘法表

python输出正金字塔和倒金字塔,以及输出九九乘法表

2022-01-19 11:03:47 3398 2

原创 完美解决Python的UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\x等‘ in position 0:报错问题

UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 0: illegal multibyte sequence

2022-01-13 15:04:51 3488 1

空空如也

空空如也

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

TA关注的人

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