各位观众老爷,晚上好!我是你们的老朋友,今晚咱们来聊聊一个略带神秘,却又无处不在的话题:动态代码执行在代码混淆中的作用,以及如何像福尔摩斯一样追踪到它们背后隐藏的真实代码。 开场白:动态代码,混淆的得力助手 话说,代码混淆这玩意儿,就像给代码穿上了一层又一层的迷彩服,让人难以一眼看穿它的真实意图。而动态代码执行,比如 eval、new Function 和 <script> 标签注入,就像是混淆工具箱里的秘密武器,能让迷彩服更加复杂,更加难以破解。 为什么这么说呢?因为动态代码执行可以在运行时生成、修改甚至执行代码,这打破了静态分析的局限性。静态分析就像是拿着一张地图找宝藏,而动态代码执行就像是在寻宝过程中突然有人把地图给改了,甚至告诉你宝藏根本不在地图上! 第一幕:动态代码执行的三剑客 咱们先来认识一下动态代码执行的三位主角: eval():老牌劲旅,简单粗暴 eval() 函数可以将一个字符串作为 JavaScript 代码执行。 let code = “console.log(‘Hello from eval!’);”; eval(code); // 输出: Hell …
继续阅读“动态加载/执行代码 (eval, new Function, script 标签注入) 在混淆中的作用?如何追踪其加载的真实代码?”