首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

JS代码混淆 | js 逆向系列

0x01 简介 文章较长,为保证有效传递知识,已经为大家准备了 PDF 版本,放在了文末 JavaScript代码混淆是一种通过对代码进行转换和修改,使其难以理解和逆向工程的技术。...下面是混淆JavaScript代码的一些主要意义: 防止代码被逆向工程:混淆使得代码的逻辑变得晦涩难懂,使攻击者难以理解代码的运行原理。这可以防止恶意用户或竞争对手直接分析、修改或复制您的代码。...,返回字符串变量p给 eval 执行,如果我们将 p 直接输出会怎么样 // 修改后 console.log(function(p,a,c,k,e,d){e=function(c){return(c<a...根本就不重要,因为它完全可以做成一个黑盒子,随意自定义的对原代码的字符串进行修改,之后提供最终的字符串以及逆向还原的过程,最终通过 eval 来执行,所以回到我们的初衷,我们分析这种混淆压缩所采用的知识点...这里我们就可以对比 eval packer 了,它只是简单的字符串替换,即使将原代码中的部分提取出来,通过数组、字典等各种形式存储、拼接、替换等,最终进行还原,这里面没有利用到复杂的语法以及js 语言本身的特性

85410

JS逆向】某麻将游戏数据生成JS加密逆向分析探索!

某游戏站麻将数据逆向,该页面数据在网页源码中无法找到,源码上没有,网页调试是存在数据的,数据是js文件驱动生成,需要JS加密逆向分析,逆向思路和方法知道借鉴和参考,可以说本篇是步步踩坑!...建议:JS逆向JS基础是关键,JS基础语法学习一定不要落下! 踩坑的根本原因在于:仅仅扣取JS代码是不行的,得会调试代码,能够修改代码,对于JS代码运行报错能够进行基本的处理和修改,使其正常运行!...文件生成页面数据 5.老规矩,搜索关键字查找加密部分,这里关键字为 document.getElementById 6.可以看到就是1008js文件,在生成数据可疑处打上断点 7.断点调试验证数据生成,...可看到部分数据生成 8.继续下一行调试,验证,这里就考验js阅读能力了 9.经过对比打印输出验证,g就是我们要获取的值,运行输出g值即可 10.抠出js代码,并修改调试 由于关联函数多,基本上都可以全部抠出再进行修改...: document is not defined 这里如果不懂js调试运行,主要是处理报错的能力,坑是没办法填了!

10610

Js 逆向进阶 | 浅谈 Js 代码保护

看了他们这个说明可能以上两个功能相对比较吸引人: 因为加密和压缩这种太容易被人分析了,原理比较简单; 控制流混淆对于逻辑的处理能够增大分析难度,原理上其实就是分析js得到语法树,通过操控语法树,比如对于...2.Js2x http://ty2y.com/obfuscate/#how-to-use ? 这个跟上面那个多态变异是一样的。...SecurityWorker https://www.securitify.io/ 这个重点强调了虚拟机,其实虚拟机的思路也比较好理解:这里只说虚拟机的思路i: 第一阶段: 这个可能是目前看到应该是 js...vmp 最强的,这种方案其实也是很好理解的,比如对于一个js代码来说,我们只用js操作写一个基于栈的解释器,然后对于本身要保护的js进行虚拟化,定义一堆自定义操作,这个时候其实还是比较弱,因为全部是...总结 对于 js 这种语言来说,由于语言本身的特殊性,一定的保护是非常必要的,再结合浏览器本身的发展,为了性能会在编译上做处理,引入本地层的东西,比如谷歌的 V8 ,火狐的 asm.js 在安全性上:业务上更多的结合服务端动态特性以及客户端强大的静态代码保护的设计会达到一个比较好的效果

27.6K20

JS逆向】某猫小说加密数据生成JS加密逆向分析探索!

一个小说网站文字内容加密,不用说,肯定也是js加密,加密特征也比较明显,尤其是适合新人学习js加密逆向分析数据和内容,算是比较简单,只需要扣取代码,直接用获取的加密参数运行即可获取数据内容。...特征: 数据内容为加密数据段 打开目标网址,访问网站 2.获取加密数据,找到加密特征 3.老规矩,根据特征,搜索关键字,这里我们搜索 chapter_content 4.结果非常明显,只有一个加密js...new b([]); return g.decrypt(f) } }) 11.接着在关键函数处下断点调试 12.验证数据内容,可以看到解密后的数据文本内容 13.不放心,可打印输出看看...PS:建议补好js基础知识! 最后还有一个参数需要获取到! 可惜的是在 Python 爬取中还是存在限制,没有获取到数据!

14610

JS 逆向百例】有道翻译接口参数逆向

逆向目标 目标:有道翻译接口参数 主页:https://fanyi.youdao.com/ 接口:https://fanyi.youdao.com/translate_o?...smartresult=dict&smartresult=rule 逆向参数: Form Data: salt: 16261583727540 sign: 151e4b19b07ae410e0e1861a6706d30c...bv: 5b3e307b66a6c075d525ed231dcc8dcd 逆向过程 抓包分析 我们在有道翻译页面随便输入文字,可以看到没有刷新页面,翻译结果就出来了,由此可以推断是 Ajax 加载的,...参数逆向 salt、sign、bv 三个加密参数,全局搜索任意一个,搜索结果比较多,依次对比,可以发现 fanyi.min.js 文件第 8969 行左右开始,Form Data 所有的参数都齐全了,埋下断点调试一下...,使用 nodejs 里面的加密模块 CryptoJS 来进行 MD5 加密,改写 JS 如下: // 引用 crypto-js 加密模块 var CryptoJS = require('crypto-js

1.4K10

JS逆向之漫画柜

这次文章是补之前文章提到的eval加密 之前简单介绍了常见的JS混淆:JS逆向常见混淆总结 里面提到的第一种混淆就是这次要分析的主角,这里分析的网站是「漫画柜」 查看请求 打开控制台,随意点击一本漫画...第二种就是按照之前的文章提到的分析流程,我们分析一遍,虽然麻烦点会走弯路但是适合新手: 没有看过的朋友可以点击下面的文章链接回顾一下:实战案例浅析JS加密 - 基础总结篇 先搜索一下关键字,这里加密的参数是...x73\x70\x6c\x69\x63']('\x7c'), 0, {})) 解密过程 我们来捋一捋整个过程,首先网站加载页面,执行了这段eval,解密了参数里的一堆密文,之后根据参数请求具体内容,那我们逆向只要拿到页面的代码...JS逆向是细致活,需要大胆假设,小心求证,耐心调试,同时在逆向过程中卡住了需要求助的时候也不要不好意思。把自己思考的结果、遇到的问题描述清楚附上小小的红包和大佬聊聊,会有意想不到的惊喜。 共勉~

1.6K30

JS逆向】某旗网加密数据生成JS加密逆向分析探索!

一个小说网站文字内容加密,不用说,肯定也是js加密,加密特征也比较明显,尤其是适合新人学习js加密逆向分析数据和内容,算是比较简单,只需要扣取代码,直接用获取的加密参数运行即可获取数据内容。...文件加密生成,需解密逆向获取!...打开页面,查找加密特征 2.获取加密特征,关键字 加密特征还是比较好找的 3.搜索关键字 ChapterContent 很明显在第二个结果,js文件中 4.打开查看,继续搜索关键字 ChapterContent...5.打开至面板断点调试 6.可以看到正文文本内容已经生成成功了 7.查看代码,分析加密函数 8.不放心的话,可以继续打断点验证 9.可以看到加密过程 10.抠出代码,本地js文件调试 本地运行效果:...data=execjs.compile(al).call('s',encrypted_data) print(data) return data 还是一个同样的报错,“gbk”字符编码报错

12710

JS逆向常见混淆总结

eval加密 把一段字符串当做js代码去执行 1eval(function(){alert(100);return 200})() 例子: 漫画柜,空中网 之后会单独写一篇漫画柜的解密。...1_0x21dd83、_0x21dd84、_0x21dd85 用十六进制文本去表示一个字符串 1\x56\x49\x12\x23 利用JS能识别的编码来做混淆 JS是Unicode编码,本身就能识别这种编码...1类似: 2 3\u6210\u529f表示中文字符(成功)。 4 5类似: 6 7\u0053\u0074\u0072\u0069\u006e\u0067....\x74\x6f\x72']['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'];效果等同于String.fromCharCode 把一大堆方法名、字符串等存到数组中...b += 2; 6 b += 3; 7 b += 4; 8 return a + b 9} 10 11// 乱序形态 12//(这里比较简单,在很多加密网站上case 后面往往不是数字或字符

2.9K40

JS逆向常见混淆总结

eval加密 把一段字符串当做js代码去执行 1eval(function(){alert(100);return 200})() 例子: 漫画柜,空中网 之后会单独写一篇漫画柜的解密。...1_0x21dd83、_0x21dd84、_0x21dd85 用十六进制文本去表示一个字符串 1\x56\x49\x12\x23 利用JS能识别的编码来做混淆 JS是Unicode编码,本身就能识别这种编码...1类似: 2 3\u6210\u529f表示中文字符(成功)。 4 5类似: 6 7\u0053\u0074\u0072\u0069\u006e\u0067....\x74\x6f\x72']['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'];效果等同于String.fromCharCode 把一大堆方法名、字符串等存到数组中...b += 2; 6 b += 3; 7 b += 4; 8 return a + b 9} 10 11// 乱序形态 12//(这里比较简单,在很多加密网站上case 后面往往不是数字或字符

2.2K20

JS逆向百例】云汉芯商城逆向分析

前言继上次粉丝提问,K哥出了对应站点的分析文章之后,又有不少小伙伴提出了在逆向一些网站的时候碰到的问题,态度都很友好,K哥会尽力满足粉丝需求,不过只能一个个慢慢来,本文先对其中一个进行逆向分析:逆向目标目标...:某芯商城,逆向分析网页:aHR0cHM6Ly9zZWFyY2guaWNrZXkuY24vP2tleXdvcmQ9RVJKVTAzRjEwMDJW逆向过程抓包分析打开开发者人员工具,随便搜索一个型号的芯片...】极验三代、四代点选类验证码逆向分析:逆向分析keyword 参数该接口是 XHR(XMLHttpRequest)类型的请求,可以直接下个 XHR 断点,这样定位到的位置通常在加密处理完成之后,已经准备发送请求了...中,很明显,该 js 经过了 OB 混淆(Obfuscator),感兴趣的可以使用 AST 技术解一下,关键的加密逻辑大概率就藏在这里面。...,这里的算法逻辑是不是很眼熟,和 keyword 参数一样,是 base64,不过这里是解码的过程,将一大串字符串还原成了刚刚的 MD5 算法,用 replace 方法替换 mwqqppz 字符串传入待加密值

8510

JS逆向之国航登录

分享另一个破解JS登录的案例 抓包 网站如下:http://www.airchina.com.cn/www/jsp/userManager/login.jsp 下面是登录的抓包: ?...因为 JS 代码一般是根据输入框的 id 标签取相应的值,然后做加密! ? id标签 搜索结果如下: ? 结果 猜测应该是 RSA 加密! 分析 在加密的位置打上断点,重新发请求: ?...点击该函数进入,可以发现 RSAUtils 的定义及其相应的函数都在这个 JS 文件中,直接一把梭,将该文件中的 JS 代码全部复制下来吧: ?...所以也将bodyRSA 函数对应的的 JS 代码复制下来。最终本地 JS 文件内容如下: ? 最后,自己写个 JS 函数,执行一下,并和抓包的数据进行对比验证结果: ?...总结 可以看到在流程当中比较重要的地方就是: 1.找规律,寻找这些数据的加密规则 2.调试 JS,使用浏览器或者在本地进行调试 3.模拟数据,将这些数据通过代码模拟生成,然后加入到数据当中

1.4K60

初探js逆向「建议收藏」

转载自 三尾先生 博客 初探js逆向 在开始之前想先说下阅读完三尾先生这篇文章的一点个人理解,文章写得挺好的,很值得新手学习了解,首先谈下逆向激活成功教程思路 1.需要逆向的时候一般是遇到了加密问题...而请求参数的加密一般就需要反复断点了,先断点到加密完成(即ajax发送参数值)然后再反复断点一步一步的往上推直到原始参数的传参; (下面就是三尾先生 初探js逆向的原文了,很值得阅读了解练手) 前言...js逆向是让爬虫萌新们比较头疼的一块领域,因为市面上大部分的爬虫书籍等教程都未涉及这方面知识,需要爬取用js加密的网站时常常无从下手,只能使用selenium等自动化框架来模拟人工点击。...但这种方式往往效率低下,所以本文将以企名片这个网站为例,带大家初探js逆向。...{ return s("5e5062e82f15fe4ca9d24bc5", my_decode(t), 0, 0, "012345677890123", 1) } 同时为了防止这串字符串内有特殊编码的字符

1.5K30
领券