javascript
java js隐藏_Javascript匿名函数是否仍然可见? (使用Java applet,这是一种隐藏JS代码的方法)...
我正在使用Javascript編寫應用程序.我正在尋找一種隱藏代碼的方法,我想我已經找到了一個使用Java Applet的代碼.
無論如何,我認為只有在評估js匿名函數的代碼后仍然無法以任何方式訪問它時,才應該可行.
(function(){...}).call(obj)
小程序可以獲取對它們所在的瀏覽器窗口的引用,并調用其eval方法來評估js代碼:
// java code
JSObject window = JSObject.getWindow(this);
window.eval( "(function(){"
+ ...
+ "}).call("
+ thisObjectName
+ ")" );
因此,我可以通過以下方式更改我的js代碼,即一些函數而不是將它們的代碼放入內部,而是調用applet函數,該函數要求窗口評估原始js函數代碼,并將一個匿名函數傳遞給窗口,因此功能參考仍然存在.當然,js函數必須為java函數指定對象的名稱(this),并且java函數必須組成匿名函數,將一個調用添加到call(objectName)方法中,以正確使用this引用.
MyJsClass.prototype.func = function() { ... };
成為:
MyJsClass.prototype.func = function()
{
...
myApplet.evalJsCode(thisObjectName);
...
};
[更新]我的主意不好有兩個原因
> Java字節碼(.class)易于反編譯(感謝Pointy)
> Applet調用的window.eval函數與您可以通過javascript覆蓋的完全相同(感謝Yoshi)
解決方法:
您是否考慮過以下可能性?
?window.eval = function (code) {
console.log('code');
};
eval('alert(1)');
意思是,幾乎不需要費力就可以覆蓋eval函數.
標簽:applet,javascript
來源: https://codeday.me/bug/20191101/1984840.html
總結
以上是生活随笔為你收集整理的java js隐藏_Javascript匿名函数是否仍然可见? (使用Java applet,这是一种隐藏JS代码的方法)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qq飞车如何刷a车(PC版官方网站)
- 下一篇: 主从触发器和边沿触发器的区别是什么(锁存