九 一击即中 处理代码混淆的方法_W_第1页
九 一击即中 处理代码混淆的方法_W_第2页
九 一击即中 处理代码混淆的方法_W_第3页
九 一击即中 处理代码混淆的方法_W_第4页
九 一击即中 处理代码混淆的方法_W_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第九篇 一击即中 处理代码混淆的办法 NightTeam 咸鱼 夜 幕团 队 扫码查看课程详情 加密分析流程总结 1. 查看关键包-分析哪些参数是加密的 2.0 搜索参数 参数名= / 参数名 = / 参数名: / 参数名 : 参数名 2.1 查看网络面板的 Initiator(发起) 2.2 xhr 断点调试 2.3 hook 相关逻辑 3. 分析加密 4. 补全加密逻辑 6样例一总结 将 JavaScript 代码转换成颜文字网络表情的编码以达到混淆的目的原理:这类混淆通常都是使用构造函数将字符串作为代码运行 例如: const sum = new Function(a, b, retur

2、n a + b); console.log(sum(2, 6);解决方法: 1. 直接将混淆后的代码粘贴至控制台通过 VM 查看源代码 2. 删除代码结尾的“(_);”替换为“toString()”或将修改后的代码粘贴至控制台运行。 样例原理 这类混淆的原理都是通过(0)“constructor” )“constructor”(code)()来执行代码的,上面这一串代码等价于 Function(code)()Function 构造函数创建了一个新的 Function 对象,我们直接调用构造函数就可以动态创建函数了。 就像下面这段代码 const sum = new Function(a, b,

3、 return a + b); console.log(sum(2, 6);传递给 Funtion 的所有参数按照传递顺序被视为函数的形参,最后一个函数传入函数体,调用执行的时候就会创建一个计算两数之和的函数了。 样例二总结 将 JavaScript 代码转换仅由符号组成的代码以达到混淆的目的原理:这类混淆通常都是使用构造函数将字符串作为代码运行转换流程大致如下: Function(alert(1) )() (0)constructorconstructor(alert(1)();$ = constructor;$ = alert(1);$_ = ; / 0按位取反就是-1 ($_)$($)(

4、);解决方法: 1. 直接将混淆后的代码粘贴至控制台通过 VM 查看源代码 2. 删除代码结尾的“()”替换为“toString()”或将修改后的代码粘 贴至控制台运行。 7 样例三总结 将 JavaScript 代码转换成只有6种字符(,(,),!,+)的编码,以达到混淆的目的 例如: 0:+1:+!+2:!+!+a:(false+)1 b:(Function(return)()+)2c:(filter+)3解决方法: 1.直接将混淆后的代码粘贴至控制台通过 VM 查看源代码 2.1 删除代码结尾的“()”替换为“toString()”或将修改后的代码粘贴至控制台运行。 2.2 将代码结尾最

5、后一对的“()”包含的代码出来单独运行 7 样例四总结 样例四其实这谈不上是加密,只能算是一种编码(Encode)或者也可以称为是一种打包(packer),类似于base64这样的编码,都是可以以一定方式还原的。 可以看到这个样例的开头是 eval ,在 js 中 eval 中接受的参数是包含有效 JavaScript 代码的字符串。 这个字符串将由 JavaScript 分析器进行分析和执行。所以我们可以断定Function(p,a,c,k,e,r)或者是function(p,a,c,k,e,d)返回的就是 好的js源代码,然后传递给eval。 所以我们只需要将eval 更改为 alert / document.write / console.log即可解 10密。 样例五总结 样例五可以说是一类混淆程度较为严重的例子。 通过将原始的 js 代码经过一系列的标识符混淆、死代码注入、防调试注入等操作达到代码保护的目的。 这类代码通过调试还原也可以达到破解的目的,但是会耗费大量的精力。我们面对这类混淆的解决方法: 0. 熟悉这类混淆通用的混淆代码 1. 找到代码的入口 2. 将代码主体扣取出来 3. 去除无用的代码与环境监测代码(埋

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论