題記
隨着安全技術的發展與郭嘉對網絡安全的重視,js也漸漸由原來的簡單化與復雜化,目前來看,賬號密碼等參數的加密,還有各種接口等調用。這就決定了學習js逆向的必要性。本文章為最簡單的調試器的功能界面,方便我自己回顧與進一步學習用的。
學習課程地址:https://www.bilibili.com/video/BV1Ly4y1G7yG?p=27
前期要記住的東西
123456的各個加密值(方便查看js加密算法)
md5(123456,32) = e10adc3949ba59abbe56e057f20f883e
md5(123456,16) = 49ba59abbe56e057
32位、16位為md5
40位大概率為sha1
Js包里react、vue、jquery、axios內容不用看。
Stringify:把對象轉成json格式。
()前邊肯定是個方法,()里邊肯定是參數。
network功能點
1 preserve log
preserve log 要勾選上,代表禁止清除緩存。
2 Disable cache
Disable cache:禁止緩存(看情況勾選)。
因為瀏覽器在訪問一些站點的時候會把圖片等一些資源保存到緩存里,勾上之后每次就向服務器請求一次,后續本地調試可以用到(攔截軟件攔截請求包,在響應包改值)。不選的話他就不去服務器請求js,不請求我們就無法替換。
Source功能點
從一個斷點跳到下一個斷點。
一行一行執行,不會進到函數方法里。
有函數跳函數,進到方法里面。
不想看函數跳出來,跳到方法外。
放行所有函數。
1 方法執行順序
2 Breakpoints
打過的斷點都會顯示在這里,通過勾選前面的對勾來決定斷點是否執行。
3 call stack
調用棧,棧的原理先進后出,
下圖停留的斷點對應的地方為anonymous,MD5就是算法核心的地方,進入到MD5函數里邊。
實例
逗號可以理解為var定義2個變量。