您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關ua的逆向過程是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
很久沒有發過文章了,并不是賬號忘記了,而是自己變懶了,還有就是現在的技術文,寫得再好都沒啥用,都是沒多少人看。還有那些看了我的文章的然后來加我微信的,一看文章什么的點個好看都沒,直接拒絕,和那些口口聲聲說對自己有多大幫助的也是這樣,所以就懶了,直接在自己小本子上記些簡要記錄就行了,反正也是自己看,不需要多好看。
所以這次發個記錄好了,不說任何代碼這些,看官們隨意。
123ua是從一個coll***.js文件加密的,看過的人應該都知道,自從122更新之后,里面不止有恐怖的控制流混淆,還有逗號表達式,逗號表達式加了之后,不將這些逗號表達式變形,是很難調試的,基本也調試不了,我這里將代碼轉成ast,然后轉換代碼格式來還原的,如需了解ast的自己百度搜就行了,這里就不多說了。
我還原了 條件表達式、逗號表達式、字符串相加這三個,其他的由于個人技術有限,還原不了。
還原之后,就可以隨便調試了,里面也沒有 debugger,所以直接使用 fiddler 的重定向替換原文件,就可以直接在網站上調試了。這個才是第一步,之后的困難才是重重的。
由于這個如果還原代碼成非控制流的話,需要很多時間和精力,所以我為了方便,直接堆dom,這樣子下次更新的也不需要太怕,當然你有時間能力還原當然更好了。
堆dom之前首先需要在每個 catch 里面加個斷點,因為有些函數或者屬性獲取不到直接報錯,不斷點的話或許就找不到了 。或者直接刪除try catch也行。
然后也將代碼本地跑,加上動態代理,打印出他們需要的dom屬性,不了解動態代理的可以看看海綿大神的這篇文章:js逆向之另類思路扣代碼
等將那些屬性補完了,登錄也能用了,但是登錄的話不知道會不會變成風控號,自測,滑塊的話還需要很多東西,還有些動態代理搞不出來的,需要自己多跟跟代碼路程,或者你用自己的技巧搞搞。
接下來說下檢測的東西吧,window 的屬性的話,看到的大多數是 selenium 的屬性,那個 pyppeteer 的好像檢測少點,如下:
var keys = ['WeixinJSBridge', 'WindVane', '__wxjs_environment', 'AlipayJSBridge', 'shenjian', 'ScriptEngineMinorVersion', 'ScriptEngineMajorVersion', 'ScriptEngineBuildVersion', 'ActiveXObject', '__$cdc7c2f8ab481c8964b__', 'UCCoreJava', 'ucapi', 'ApplePayError', 'ApplePaySession', '__acjs_awsc_123', '__acjs', '_uab_module', 'mozPaintCount', 'mozInnerScreenX', 'Debug', 'WebKitPlaybackTargetAvailabilityEvent', 'attachEvent']
里面也檢測了整個大函數的 toString,不一樣走的路徑完全不一樣。
還有就是里面很多 hasOwnProperty 和 getOwnPropertyDescriptors,不清楚的自己谷歌下,第二個難改點,第一個比較容易,主要是找那些屬性在判斷這兩個東西,可以試試 hook。
剩下的就是軌跡了,軌跡也有個需要注意的點,里面只記錄每個軌跡之間的時間差大于2毫秒才會記錄,所以需要停一下,要不然沒用。
我現在搞的軌跡是固定的,都可以過,如果不是頻繁的話,軌跡一直都有效,因為都是一直滑到底。
至此 ,ua就完畢了,如果你這個時候開心的話,那么,恭喜你,還有個幾萬行的文件需要看,也是和上面的差不多。
um這個文件,生成的是106data,但是這個文件檢測的東西不多,基本都是設備指紋,就是與canvas相關的,還有那些什么可支持插件之類的,不怎么檢測dom屬性。
這個文件有很多定時函數,目的就是更新一些storage好像,還有就是這個umiToken,滑塊需要這個。
至此,ua和um,搞定了就可以過了,整了六天,電腦都快頂不住了。
以上就是ua的逆向過程是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。