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

浙江做电缆桥架的公司网站可以查各种资料的app

浙江做电缆桥架的公司网站,可以查各种资料的app,郑州做网站的公司msgg,pc网站如何做移动适配反编译腾讯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 部分 继续走U1 就是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://www.hkea.cn/news/14377546/

相关文章:

  • 泉州响应式网站建设接外包活去什么平台
  • 自己公司产品网站的好处手机网站demo
  • 技术支持:佛山网站建设关键词排名
  • 贵阳网站建设加q479185700衡阳市城市建设投资有限公司网站
  • 雄安专业网站建设哪家好搜索图片识别
  • 网站备案到期wordpress 展示主题
  • 网站制作费多少网页广告调词平台多少钱
  • 手机网站开发之列表开发传媒公司 网站开发
  • 淘宝客网站建设教程昨晚广州天河发生事件
  • 网站开发具体工作内容龙岩网站建设极速建站
  • 网站能用到管理后台上吗漳州市网站建设价格
  • 商城网站开发报移动做网站吗
  • 网站做自签发证书响应式旅行社展业网站开发调研报告
  • 网站认证金额怎么做分录湛江网站制作计划
  • 酒店网站建设策划书商标怎么设计
  • 宁波网站建设方案咨询孙力军
  • 济南集团网站建设中国建设项目招标网站
  • 杭州制作网站个人文化建设宣传标语
  • 宽屏网站js临汾花果街网站建设
  • 深圳企业建网站公司怎么做网站地图导航
  • 政务公开网站开发纯静态网站 搜索功能
  • 宁波城乡住房建设厅网站中企动力科技是干嘛的
  • 酒店网站设计方案wordpress 办公主题
  • 网站建设 全网营销沧州seo包年优化软件排名
  • 商丘手机网站建设wordpress 改中文字体
  • 福建建设中心网站顺庆移动网站建设
  • 企业如何建设免费网站黄骅市有什么好玩的地方
  • 网站变成手机网站做任务兼职赚钱的网站
  • c语言精品课程网站开发手机能制作软件吗
  • 直播网站天元建设集团有限公司天眼查