diff --git a/ast-hook-for-js-RE b/ast-hook-for-js-RE index 1a5f1a4..7b87ef1 160000 --- a/ast-hook-for-js-RE +++ b/ast-hook-for-js-RE @@ -1 +1 @@ -Subproject commit 1a5f1a4e6a76ad3f7627559d0a04af26d439fef1 +Subproject commit 7b87ef1983413bf7b3ab922efa6e6a3495f85f89 diff --git a/img/111.png b/img/111.png new file mode 100644 index 0000000..0da97f8 Binary files /dev/null and b/img/111.png differ diff --git a/img/112.png b/img/112.png new file mode 100644 index 0000000..eee20e2 Binary files /dev/null and b/img/112.png differ diff --git a/img/113.png b/img/113.png new file mode 100644 index 0000000..54c1e75 Binary files /dev/null and b/img/113.png differ diff --git a/夜幕-第9课练习题使用代码压缩技术对Javascript 代码进行混淆/key测试.js b/夜幕-第9课练习题使用代码压缩技术对Javascript 代码进行混淆/key测试.js new file mode 100644 index 0000000..a6d86e4 --- /dev/null +++ b/夜幕-第9课练习题使用代码压缩技术对Javascript 代码进行混淆/key测试.js @@ -0,0 +1,16 @@ +function uuid() { + var s = []; + var hexDigits = "0123456789abcdefghijklmnopqrstuvwxyz"; + for (var i = 0; i < 36; i++) { + s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1); + } + s[14] = "4"; + s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); + s[8] = s[13] = s[18] = s[23] = "-"; + var uuid = s.join(""); + return uuid; +} + +uuid_res = uuid(); + +console.log(uuid_res); \ No newline at end of file diff --git a/夜幕-第9课练习题使用代码压缩技术对Javascript 代码进行混淆/readme1.md b/夜幕-第9课练习题使用代码压缩技术对Javascript 代码进行混淆/readme1.md new file mode 100644 index 0000000..47bdd3b --- /dev/null +++ b/夜幕-第9课练习题使用代码压缩技术对Javascript 代码进行混淆/readme1.md @@ -0,0 +1,55 @@ +在JS逆向系列课的第9课《一击即中 处理常见代码混淆的方法》中,我们见到了5中看起来很厉害的混淆字符串,也学会了如何轻松干掉它们。 那么现在,请运用你在第9课第5节中学到的知识,尝试做一下这道题吧~ + +请问: + +这一页帖子的平均阅读量(列表页右侧的数字)是多少?(需整除) + +找到加密的地方打断点 + +![debugger](../img/111.png) + +发现加密地方 + + md5(key + base64.encode(time) + 'xianyucoder11') + +key = "9247afed8bea110ae75461a9b54b2eeaff2b73cf" + +base64.encode(time) 中的 time = "16786173524",测试发现base64没有魔改 + +key 是如何得到的 + + let key = uuid(); + +开始扣js代码 + + function uuid() { + var s = []; + var hexDigits = "0123456789abcdefghijklmnopqrstuvwxyz"; + for (var i = 0; i < 36; i++) { + s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1); + } + s[14] = "4"; + s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); + s[8] = s[13] = s[18] = s[23] = "-"; + var uuid = s.join(""); + return uuid; + } + +本地运行,可以直接运行 + + function uuid() { + var s = []; + var hexDigits = "0123456789abcdefghijklmnopqrstuvwxyz"; + for (var i = 0; i < 36; i++) { + s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1); + } + s[14] = "4"; + s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); + s[8] = s[13] = s[18] = s[23] = "-"; + var uuid = s.join(""); + return uuid; + } + + uuid_res = uuid(); + + console.log(uuid_res); \ No newline at end of file