JavaScript 的 Anti-Debugging 技術
摘要
JavaScript 運行在客戶端,多數 Browser 亦有很強的 debugger,有時為了保護程式碼的邏輯不被破解或想要藏惡意程式之類的,會想辦法讓分析者沒辦法輕易分析原始碼。通常又可以分為阻撓靜態分析(例如 obfuscation)和動態分析(例如 anti-debugging)。這篇文章會介紹 JavaScript 的一些 anti-debugging 的方法,討論可以如何讓分析者沒辦法在 browser 上用 debugger 或甚至偵測自己是否正在被 debug,並分析他們的優劣與可能破解方法。
這篇文章是 U Can’t Debug This: Detecting JavaScript Anti-Debugging Techniques in the Wild 的部份重點整理,該文發表於 USENIX Security 2021。該文其實遠不只 anti-debugging 技術,不過因為他們分析做得很好,所以想針對這部份做重點整理。
欢迎在评论区写下你对这篇文章的看法。