js逆向筆記


1.nodejs運行js的時候

navigator如果找不到可以可設置為空對象

var navigator={};

2.使用nodejs如果window對象找不到的時候

可以使用jsdom模塊

3.頂層代碼調用的對象的this

瀏覽器里表示window,nodejs中表示object

4.以下獲取屬性的兩種方式

obj.x //寫死代碼里

obj["x"] //可以動態調用屬性,[]內是字符串

5.xhr相關

var xhr = new XMLHttpRequest(); //創建xhr對象
xhr.open("GET", url, true);  //請求數據 用GET方法 異步獲取
xhr.onreadystatechange = function() {  //一個事件可以獲取請求之后的東西
     
    if (xhr.readyState == 4 && xhr.status == 200) {
        console.log(xhr.responseText); 
    }
};

6. 在js中使用Function可以實例化函數對象,也就是說在js中函數和普通對象一樣。

函數是Function的實例

語法:


new Function(arg1, arg2........argN, body);

1,Function中的參數全部是字符串。

2,構造函數的作用是將參數連接起來構成函數。

       * 如果參數只有一個即是表示函數體。

       * 如果參數多個,最后一個為函數體,前面的全是表示函數參數。

       * 如果沒有參數,即創建空函數。

以下兩種創建函數示例的方法是一樣的

function foo(num) {


   console.log(num)
}

等價於
var func = new Function("num","console.log(num);"); //參數都是字符串,最后一個參數是函數體的內容。

分別通過以下方式調用

foo(5)
func(5)

7.使用require模塊化,define使用

define(['myLib'], function(myLib) {
    function foo() {
        myLib.somefunction()
    }
    return {
        foo: foo
    };
});

8.use strict 指令

嚴格模式中 所有的變量都要聲明(在非嚴格模式中,給未聲明的變量賦值,是給全局對象window對象添加一個屬性)
嚴格模式中 函數(不是方法)中的this值為undefined,非嚴格模式指代全局對着(window)

9.&&可以當if使用

var a;
1==1 && a=2
 

表示如果前面條件1==1為true,則a=2。

10.btoa是window下的方法,相當於base64

11.參數加密規則

對於不知道的加密字符串,首先為HEX,然后按照下面表嘗試

ggzip 1f .8b. 08
lzma 6c.00
zlib 78.51

12. 參數獲取途徑

1.直接HTML源碼
2.寫死在JS
3.來自cookie
4.響應中獲取

13. 無限debugger

(function(){}).constructor ===Function

執行

Function.prototype.constructor=function(){};

回車
可以置空。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM