# JSRPC 安装 websocket 服务 npm install nodejs-websocketconst ws = require("nodejs-websocket");var _server = ws.createServer(conn => { // 接收客户端返回的数据 conn.on("text", function(str) { console.log(str, "接收客户端传过来的值"); }); //...

# 三重控制流平坦化 function n() { for (var e = 1; void 0 !== e;) { var a = 7 & e; var r = e >> 3; var s = 7 & r; switch (a) { case 0: switch (s) { case 0: i += "a"; e = 2; break; case 1: if (i) { e = 0; } else { e...

ast_tools 源码解读 # IfWithExpressFix 主要是给不包含 block 的 if 表达式添加上,让其统一化。 if(a=1) var b=3;-----------------if(a=1){var b=3}# ForWithExpressFix & ForWithForFix 都是给 For 循环规范化。 # ReturnSeqFix 将 return 中包含逗号表达式的还原 第一部分用于将所有的逗号表达式添加到数组中,第二步主要是将逗号表达式前 n-1 项加到 return 前面,然后将 return...

# MM # markov model: 马尔可夫模型,指的是在给定当前知识的情况下,过去对于预测未来是无关的,诶个状态的转移,只依赖之前的 n 个状态,被称为是一个 n 阶模型。 # 转移矩阵: 指的是从一个状态转移到另一个状态的概率,整体上为一个 n*n 的矩阵 # HMM 用来描述 含有隐含未知参数的马尔可夫过程。对于投色子来讲,假如有三种色子,分别包含 6 8 10 个面,那么每个色子表现出 1 的概率是不同的,同时,我们还知道色子丢出来的结果到底是几,那么我们就可以用这个结果去反推出对应的值是由哪个色子投出来的。 # HIDDEN STATE: 隐藏状态集合 #...

# 关联挖掘 # 基本概念 频繁项集:n 项的集合。 支持度:代表 A、B 同时出现的概率,如果概率小,那么说明 A 与 B 的关系不大,如果 A、B 总是同时出现,那么说明他们是相关的。 support=P(AUB)support = P(AUB) support=P(AUB) 置信度:包含 A 的数据集中包含 B 的百分比。 # Apriori 算法 使用候选项集找频繁项集 核心思想,只要一个项集是非频繁的,那么包含他的项集就都是非频繁的。 # 算法实现 关联矩阵转布尔矩阵 data = final_data.copy()def map_func(x): if x == 0: return...

# 算法简介: # TF: TF 算法,全称 Term frequency,翻译过来就是词频,顾名思义,就是词的频率: 某词语的词频=该词语在一篇文章所出现的次数该篇文章包含的词语数某词语的词频 =...

# 编码混淆 # base 系列 # base64 以目前来看,最为常见的是 base64,结尾一般来讲都有一到 2 个等号,明文过短的时候就没有。 js 端 (base64): // 明文:123btoa('123');// 密文:'MTIz'// 解密atob('MTIz');python 端: import base64test_str = '123'encode_str =...

# feaplat 服务器部署 # 服务器选择选用 centos7.6 账号:root 密码:大小写混合 直接使用 FinalShell 链接,其中 IP 地址对应公网 IP,端口对应 22 (默认),采用上述账号密码进行账号密码登录。 # Docker 介绍: 本质上是通过打包的方式,将环境啥的都集中到一个地方,避免配置的复杂度,做到随用随取,同时里面相当于包含独立的 linux 主机类似 bin 啥的目录 # docker pull: 下载网上的镜像,一般选用公用镜像,私有的建立仓库啥的 # docker run: 参数 解释 -d 表示启动在后台 -p 8888:8888...

# 代码还原 接着上一篇。 # 环境加载 在上一篇,我们将加载函数抠出来了后,就可以直接保存在内存中,然后通过直接在内存里面计算拿到结果在还原,这里还原方法类似解 Ob 混淆的还原,通过遍历所有的 CallExpression 节点,找到解密函数实参,然后传参,最后将结果还原即可。 const InFuncReplace = { CallExpression(path){ const {callee,arguments} = path.node; if(!types.isMemberExpression(callee))...

不知道为什么要还原 ti,也不知道还原了 ti 有啥用。 aHR0cHM6Ly93d3cudGkuY29tLmNuL3JBUy0yL29Kai92cVItL2YzZ0EvdVJYbC9oWU41d1Z3NC9JQjRWUDBzRUJ3L0FGL1VkT1NrdEd5OEI=# 源码分析 将代码放至 AST explorer 中解析。 根据解析的结果可以发现几个明显的特征: // 于函数体内部的赋值表达式生成、非常规运算。tv();function tv(){ SQ = +!+[]};// 类 OB 的运算混淆var xB = function (qB,...