- 佛语:“赠人玫瑰,手留余香。” 若您感觉博文内容与您有益,请点赞并收藏! 敬请关注作者,海量博文持续更新中。望与各位码友同学习,共进步! 1.介绍 VuePress ,一个全新的基于 vue 的静态网站生成器,实际上就是一个 vue 的 spa ... 佛语:“赠人玫瑰,手留余香。” 若您感觉博文内容与您有益,请点赞并收藏! 敬请关注作者,海量博文持续更新中。望与各位码友同学习,共进步! 1.介绍 VuePress ,一个全新的基于 vue 的静态网站生成器,实际上就是一个 vue 的 spa ...
- 介绍 Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。 功能特性 在浏览器中发送 XMLHttpRequests 请求;在 node.js 中发送 http请求;支持 Promise API;拦截请求和响应;转换请求和响应数据;自动转换 JSON 数据;客户端支持保护安全免受 XSRF 攻击;浏览器支持; 安装 ... 介绍 Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。 功能特性 在浏览器中发送 XMLHttpRequests 请求;在 node.js 中发送 http请求;支持 Promise API;拦截请求和响应;转换请求和响应数据;自动转换 JSON 数据;客户端支持保护安全免受 XSRF 攻击;浏览器支持; 安装 ...
- npm 是 Node.js 的模块依赖管理工具。作为开发者使用的工具,主要解决开发 Node.js 时会遇到的问题。如同 RubyGems 对于 Ruby 开发者和 Maven 对于 Java 开发者的重要性,npm 对与 Node.js 的开发者和社区的重要性不言而喻。本文包括五点:package.json 、npm 的配置、npm install 命令、npm li... npm 是 Node.js 的模块依赖管理工具。作为开发者使用的工具,主要解决开发 Node.js 时会遇到的问题。如同 RubyGems 对于 Ruby 开发者和 Maven 对于 Java 开发者的重要性,npm 对与 Node.js 的开发者和社区的重要性不言而喻。本文包括五点:package.json 、npm 的配置、npm install 命令、npm li...
- Vue.js为两个最为常用的指令提供了特别的缩写: v-bind缩写 <!--完整语法--> <a v-bind:href="url">测试</a> <!--缩写--> <a :href="url">测试</a> 1234 v-on缩写 <!--完整语法--> <a v-o... Vue.js为两个最为常用的指令提供了特别的缩写: v-bind缩写 <!--完整语法--> <a v-bind:href="url">测试</a> <!--缩写--> <a :href="url">测试</a> 1234 v-on缩写 <!--完整语法--> <a v-o...
- package-lock.json的作用是锁定安装时的包的版本号,并且需要上传到git,以保证其他人在npm install时大家的依赖能保证一致。 根据官方文档,这个package-lock.json 是在 npm install时候生成一份文件,用以记录当前状态下实际安装的各个npm package的具体来源和版本号。 它有什么作用呢?因为npm是一个用于管理p... package-lock.json的作用是锁定安装时的包的版本号,并且需要上传到git,以保证其他人在npm install时大家的依赖能保证一致。 根据官方文档,这个package-lock.json 是在 npm install时候生成一份文件,用以记录当前状态下实际安装的各个npm package的具体来源和版本号。 它有什么作用呢?因为npm是一个用于管理p...
- 前言 Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource。 目前主流的 Vue 项目,都选择 axios来完成 ajax 请求,而大型项目都会使用 Vuex 来管理数据,所以这篇博客将结合两者来发送请求。 Vuex 的安装将不再赘述,可以参考... 前言 Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource。 目前主流的 Vue 项目,都选择 axios来完成 ajax 请求,而大型项目都会使用 Vuex 来管理数据,所以这篇博客将结合两者来发送请求。 Vuex 的安装将不再赘述,可以参考...
- 在前期博文《Vue进阶(八十四):vue中Computed 和 Watch的使用和区别》中,讲解了vue中Computed 和 Watch的使用和区别,其中,只是介绍了computed如何计算元素属性,并未介绍如何方法传参。本篇博文主要讲解下如何利用computed的计算属性进行传参。 场景引入 在前端项目开发过程中,会遇到码值转换应用场景,且不同页面会存在复用码值... 在前期博文《Vue进阶(八十四):vue中Computed 和 Watch的使用和区别》中,讲解了vue中Computed 和 Watch的使用和区别,其中,只是介绍了computed如何计算元素属性,并未介绍如何方法传参。本篇博文主要讲解下如何利用computed的计算属性进行传参。 场景引入 在前端项目开发过程中,会遇到码值转换应用场景,且不同页面会存在复用码值...
- &nbs... &nbs...
- 在 反混淆插件五 这篇文章中,介绍了 options 的一些功能,忘记介绍如何删除空行了。也很简单,注意 retainLines 这个即可,代码如下: const output = generator(ast,opts = {"retainLines":true},code); 也可以利用 UltreEdit 这个工具的 正则替换来删... 在 反混淆插件五 这篇文章中,介绍了 options 的一些功能,忘记介绍如何删除空行了。也很简单,注意 retainLines 这个即可,代码如下: const output = generator(ast,opts = {"retainLines":true},code); 也可以利用 UltreEdit 这个工具的 正则替换来删...
- 插件功能 获取实参,计算出全局函数调用的结果,并用结果替换该全局函数的调用表达式。 处理实例 处理前: var a = parseInt("12345",16),b = Number("123"),c = String(true),d = unescape("hello%2CAST%21");eval("a = 1"); 处理后: var a&nb... 插件功能 获取实参,计算出全局函数调用的结果,并用结果替换该全局函数的调用表达式。 处理实例 处理前: var a = parseInt("12345",16),b = Number("123"),c = String(true),d = unescape("hello%2CAST%21");eval("a = 1"); 处理后: var a&nb...
- 实战地址 http://match.yuanrenxue.com/match/14 抓包分析 地址栏输入 地址,按下F12并回车,发现数据在这里: 没有加密参数,看看cookie字段: 有三个加密的字段,看上一个接口: http://match.yuanrenxue.com/api/match/14/m cookie请求是这样的: 带着 ... 实战地址 http://match.yuanrenxue.com/match/14 抓包分析 地址栏输入 地址,按下F12并回车,发现数据在这里: 没有加密参数,看看cookie字段: 有三个加密的字段,看上一个接口: http://match.yuanrenxue.com/api/match/14/m cookie请求是这样的: 带着 ...
- “继续学习操作AST” 我们今天来看看,如何将一个 BinaryExpression 类型的节点转换成 CallExpression 类型 的节点。即将代码: var a = 123 | 456; 转换为: var a = function (s, h) { return s | h;}(123, 456); 为什么要这么做,因为一个BinaryExpr... “继续学习操作AST” 我们今天来看看,如何将一个 BinaryExpression 类型的节点转换成 CallExpression 类型 的节点。即将代码: var a = 123 | 456; 转换为: var a = function (s, h) { return s | h;}(123, 456); 为什么要这么做,因为一个BinaryExpr...
- 本文缘由 随着反爬的升级,前端的JavaScript代码越来越难以阅读,一个简单的字符串声明竟然可以拆分成多行代码,虽然并不会给动态调试带来困难,但是在静态分析时着实让人难受。明明一行代码可以搞定的事情,偏偏写成了十行甚至百行,代码冗余非常严重。 我们以下面的代码为例,来讲讲如何还原。 for (var e = "\u0270\u026D\u0274\u0274\... 本文缘由 随着反爬的升级,前端的JavaScript代码越来越难以阅读,一个简单的字符串声明竟然可以拆分成多行代码,虽然并不会给动态调试带来困难,但是在静态分析时着实让人难受。明明一行代码可以搞定的事情,偏偏写成了十行甚至百行,代码冗余非常严重。 我们以下面的代码为例,来讲讲如何还原。 for (var e = "\u0270\u026D\u0274\u0274\...
- 前言 &n... 前言 &n...
- 代码样本 打开著名的JavaScript在线混淆网站: https://obfuscator.io/ 按照它给的原代码: // Paste your JavaScript code herefunction hi() { console.log("Hello World!");}hi(); 选择下图所示的选项,其他的不变: 然后点击 Obf... 代码样本 打开著名的JavaScript在线混淆网站: https://obfuscator.io/ 按照它给的原代码: // Paste your JavaScript code herefunction hi() { console.log("Hello World!");}hi(); 选择下图所示的选项,其他的不变: 然后点击 Obf...
上滑加载中