国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼

這篇具有很好參考價值的文章主要介紹了Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

最近周末閑著無事,看了一下Nike的登錄,發(fā)現(xiàn)連環(huán)境都不用補(bǔ)acw_sc__v2這個參數(shù),分享出來給大家趣味性娛樂一下
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼

一、分析

打開F12抓包看看登錄
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
老樣子復(fù)制curl給抓到Postman里面去分析一下
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
具體的參數(shù)查找就不演示了(就是簡單的刪參數(shù)看看啥需要啥不需要)。
最后可以發(fā)現(xiàn),cookie只需要這個acw_sc__v2就可以完成登錄了。
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
這是沒有acw_sc__v2參數(shù)得到的結(jié)果
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼

此刻回到登錄頁面的控制臺把之前登錄獲得的acw_sc__v2給干掉
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
使用祖?zhèn)鱤ook代碼來hook出cookie(因?yàn)槭髽?biāo)移動也會對cookie造成影響,所以做了一個小小的過濾篩選)

cookie_cache = document.cookie;
Object.defineProperty(document, "cookie", {
        get: function () {
            console.log(cookie_cache);
        // 在獲取document.cookie時,執(zhí)行你想要的操作
        return cookie_cache; // 返回原始的cookie值
    },
    set: function(value) {
        // 在設(shè)置document.cookie時,執(zhí)行你想要的操作
        if(value.includes('acw_sc__v2')){
           debugger;
        }

    }
});

斷點(diǎn)斷上后,往上一找,簡單明了的發(fā)現(xiàn)了acw_sc__v2參數(shù)(arg3)
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
接著往上瞅瞅,可以發(fā)現(xiàn)arg3是和arg2有關(guān)的,那就再往上找找arg2的相關(guān)邏輯
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
到這里可以發(fā)現(xiàn)arg2又是由arg1得來的,那就再往上看看arg1是從哪里來的。
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
一直翻到函數(shù)的開頭,可以發(fā)現(xiàn)arg1是作為參數(shù)被傳進(jìn)來的Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
那就調(diào)用棧繼續(xù)往上翻,可以發(fā)現(xiàn)arg1是從一段<html><script>...的代碼里面提取出來的,這個代碼很熟悉啊,不就是我們之前沒有帶acw_sc__v2參數(shù)去請求登錄的代碼嗎,那這個arg1我們就可以暫時固定住,去解決arg2生成的問題了。
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
回到調(diào)用棧_0x4818,給他重啟一下
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
再arg2處打上斷點(diǎn)
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
把a(bǔ)rg1加密生成arg2這段邏輯給copy下來

arg1="1029C3D5A2B9A15E217ED61D1C74843F834237A1"
var posList = [15, 35, 29, 24, 33, 16, 1, 38, 10, 9, 19, 31, 40, 27, 22, 23, 25, 13, 6, 11, 39, 18, 20, 8, 14, 21, 32, 26, 2, 30, 7, 4, 17, 5, 3, 28, 34, 37, 12, 36];
var mask = _0x1e8e("0x0");
var outPutList = [];
var arg2 = "";
var arg3 = "";
for (var i = 0; i < arg1[_0x1e8e("0x1")]; i++) {
    var this_i = arg1[i];
    for (var j = 0; j < posList[_0x1e8e("0x1")]; j++) {
        if (posList[j] == i + 1) {
            outPutList[j] = this_i
        }
    }
}
arg2 = outPutList[_0x1e8e("0x2")]("");
console.log(arg2)

然后沒有的函數(shù)給他補(bǔ)齊一下。
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
秉承著缺啥補(bǔ)啥的思想,補(bǔ)了兩個參數(shù)進(jìn)去。但是運(yùn)行起來居然溢出了,在這里,我們就需要跟進(jìn)去看看什么操作導(dǎo)致了這個代碼溢出。
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
根據(jù)去對照著瀏覽器的參數(shù)值可以發(fā)現(xiàn),這兩邊明顯的不同,_0x3e9e這個數(shù)組明顯是不一樣的,回到瀏覽器可以發(fā)現(xiàn),在這兩個參數(shù)之間,還有一個自執(zhí)行函數(shù),對_0x3e9e這個數(shù)組進(jìn)行了一個操作,應(yīng)該就是移位操作了
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
直接弄下來
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
可是一運(yùn)行,之前的斷點(diǎn)都到不了了,可以發(fā)現(xiàn),這個自執(zhí)行函數(shù)里面還是出了問題,經(jīng)驗(yàn)而談,應(yīng)該就是格式化檢測這種問題了,老樣子跟進(jìn)去看看,跟了沒幾步就可以發(fā)現(xiàn),是這里導(dǎo)致了無法正常運(yùn)行,為什么不往下跟了,因?yàn)槲铱吹搅薘egExp,這不就是正常的正則化檢測么
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
把對應(yīng)的參數(shù)打印一下,就能看到了,這里是對removeCookie這個進(jìn)行了正則化檢測,這還不簡單,直接把_0x981158["test"](_0x3e4c21["removeCookie"]["toString"]())變成true,就可以正常運(yùn)行到我們之前的斷點(diǎn)了,并且_0x3e9e數(shù)組也變成和瀏覽器一樣了。

Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
那我們舉一反三想一下,會不會之前這里溢出,也是因?yàn)檎齽t化檢測呢,直接開搜
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
經(jīng)過排除其余兩個RegExp(因?yàn)槭窃谘a(bǔ)的那個自執(zhí)行函數(shù)里面,不會對下面的結(jié)果造成影響了),可以發(fā)現(xiàn)上圖這里還存在一個RegExp,但是和上面寫法又不大一樣,那我們這里還是先下一個斷點(diǎn)看看是什么情況
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
結(jié)果怎么說呢,還是大同小異,直接給他改成true,看看還會不會溢出
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
可以看到arg2是成功被打印出來了
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
和瀏覽器對比也是一樣的效果
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
那么就可以著手arg3的事情了,也沒什么要分析的了,直接放在arg2后面,一運(yùn)行就出結(jié)果了。

for (var i = 0; i < arg2[_0x1e8e("0x1")] && i < mask[_0x1e8e("0x1")]; i += 2) {
    var GxjQsM = _0x1e8e("0x3")[_0x1e8e("0x4")]("|")
      , QoWazb = 0;
    while (!![]) {
        switch (GxjQsM[QoWazb++]) {
        case "0":
            if (xorChar[_0x1e8e("0x1")] == 1) {
                xorChar = "0" + xorChar
            }
            continue;
        case "1":
            var strChar = parseInt(arg2[_0x1e8e("0x5")](i, i + 2), 16);
            continue;
        case "2":
            arg3 += xorChar;
            continue;
        case "3":
            var xorChar = (strChar ^ maskChar)[_0x1e8e("0x6")](16);
            continue;
        case "4":
            var maskChar = parseInt(mask[_0x1e8e("0x5")](i, i + 2), 16);
            continue
        }
        break
    }
}
console.log(arg3)

Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼

三、總結(jié)

其實(shí)沒啥難度,主要是一個對正則化的檢測,甚至環(huán)境都不需要補(bǔ)。主要是給一個思路。

四、番外

當(dāng)然不僅僅是上面這種方法,還記得不帶cookie去訪問得到的js代碼嗎
Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼

1.AST解混淆

如果不想自己手寫的,可以直接使用猿人學(xué)自帶的一鍵解混淆,不過效果肯定沒有自己想要的隨心所欲,但是速度快呀。
不過我這里給出我手寫的AST解混淆代碼,bianhhua.js就是不帶cookie去訪問得到的js代碼,具體每行什么作用,使用gpt自己理解噢~

const {parse} = require("@babel/parser");
const generator = require("@babel/generator").default;
const traverse = require("@babel/traverse").default;
const types = require("@babel/types");
const fs = require("fs");
var AST_code = fs.readFileSync('bianhhua.js', {encoding: 'utf-8'});

let AST_parse = parse(AST_code);
traverse(AST_parse, {
        //  字符串美化,便于觀察
        "StringLiteral|NumericLiteral"(path){
            path.node.extra && delete path.node.extra;
    
        },
})
const js_code = generator(AST_parse, {compact:true}).code;
let AST_parse_1 = parse(js_code);

// 獲取解密函數(shù),并寫入內(nèi)存
let memory_decode_js = '';
for(let i=0;i<=3;i++){
    memory_decode_js += generator(AST_parse_1.program.body[i], {compact:true}).code
}
AST_parse_1.program.body[3] = ""
eval(memory_decode_js);
traverse(AST_parse_1, {
    //  替換加密字符參數(shù)
    "CallExpression"(path){
        if(path.node.callee.name === '_0x55f3'){
            path.replaceInline(types.valueToNode(eval(path.toString())));
        }
    },
})

const js_code_1 = generator(AST_parse_1, {compact:true}).code;
console.log(js_code_1)

Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-488107.html

到了這里,關(guān)于Nike登錄的acw_sc__v2參數(shù)逆向詳細(xì)思路分析(非常簡單,建議入手)含AST解混淆代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Django學(xué)習(xí)筆記-Web端授權(quán)AcWing一鍵登錄

    Django學(xué)習(xí)筆記-Web端授權(quán)AcWing一鍵登錄

    筆記內(nèi)容轉(zhuǎn)載自 AcWing 的 Django 框架課講義,課程鏈接:AcWing Django 框架課。 Redis 為內(nèi)存數(shù)據(jù)庫,目前我們使用的是 Django 自帶的數(shù)據(jù)庫 SQLite,且能夠很容易地遷移到 MySQL,這些數(shù)據(jù)庫的效率不如 Redis,其特點(diǎn)為: Redis 存的內(nèi)容為 key, value 對,而其它數(shù)據(jù)庫存的是若干張表,

    2024年02月11日
    瀏覽(17)
  • Django學(xué)習(xí)筆記-AcApp端授權(quán)AcWing一鍵登錄

    Django學(xué)習(xí)筆記-AcApp端授權(quán)AcWing一鍵登錄

    筆記內(nèi)容轉(zhuǎn)載自 AcWing 的 Django 框架課講義,課程鏈接:AcWing Django 框架課。 AcApp 端使用 AcWing 一鍵授權(quán)登錄的流程與之前網(wǎng)頁端的流程一樣,只有申請授權(quán)碼這一步有一點(diǎn)細(xì)微的差別: 我們在打開 AcApp 應(yīng)用之后會自動向 AcWing 請求賬號登錄,客戶端會向后端服務(wù)器請求一些參

    2024年02月11日
    瀏覽(11)
  • 逆向破解思路和獲取app的代碼,脫殼操作(四)

    逆向破解思路和獲取app的代碼,脫殼操作(四)

    加殼 什么是加殼? 我們的ipa文件上傳appstore,蘋果會給我們做一個加密,其實(shí)我們運(yùn)行在內(nèi)存中的過程是一個加密的殼程序,當(dāng)然在手機(jī)中我們會對他進(jìn)行解密殼程序,來直接運(yùn)行可執(zhí)行的文件,當(dāng)然蘋果這樣做的目的是為了保護(hù)我們的程序。 脫殼 脫殼的方式 1.硬脫殼:

    2024年02月15日
    瀏覽(21)
  • dx滑塊逆向及ac參數(shù)逆向

    dx滑塊逆向及ac參數(shù)逆向

    網(wǎng)址:aHR0cHM6Ly93d3cuZGluZ3hpYW5nLWluYy5jb20vYnVzaW5lc3MvY2FwdGNoYQ== 目錄 聲明? 本文章中所有內(nèi)容僅供學(xué)習(xí)交流使用,不用于其他任何目的,不提供完整代碼,抓包內(nèi)容、敏感網(wǎng)址、數(shù)據(jù)接口等均已做脫敏處理,嚴(yán)禁用于商業(yè)用途和非法用途,否則由此產(chǎn)生的一切后果均與作者無關(guān)! 本

    2024年02月06日
    瀏覽(17)
  • 逆向案例十八——webpack逆向紅人點(diǎn)集登錄密碼

    逆向案例十八——webpack逆向紅人點(diǎn)集登錄密碼

    網(wǎng)址鏈接:紅人點(diǎn)集 密碼登錄,獲取數(shù)據(jù)包: 發(fā)現(xiàn)pwd和sig兩個加密參數(shù),開始跟棧調(diào)試 ? 點(diǎn)擊第一個,在send處打上斷點(diǎn),再點(diǎn)擊登錄。 ? 進(jìn)入異步棧,r.requests 釋放之前的斷點(diǎn),打上斷點(diǎn) ,點(diǎn)擊登錄 往前跟棧,看什么時候密碼是明文,結(jié)果,打上斷點(diǎn),同樣操作,分析代

    2024年04月18日
    瀏覽(41)
  • AcWing 4576. 素?cái)?shù)獨(dú)立集(詳細(xì)解釋)

    就是給你一個長度為n的集合(保證沒有重復(fù)的數(shù)出現(xiàn)),需要你去構(gòu)成一個最大長度的子集,且這個子集里面的數(shù)都沒有一種題目給定的關(guān)系,關(guān)系就是在這個子集中 沒有任何一個 元素是另一個元素的素?cái)?shù)倍數(shù)。比如a%b = 0, k = a b k = frac{a} k = b a ? k不能是素?cái)?shù)。{2,8,17} 是素

    2024年02月14日
    瀏覽(18)
  • JS逆向案例:破解登錄密碼

    JS逆向案例:破解登錄密碼

    本人不是專業(yè)IT人員,但是對python爬蟲這塊非常感興趣,在抖音上看了zhen老師的python全棧直播課程,果斷選擇加入zhen老師的VIP大家庭,給zhen老師投稿發(fā)文章還能掙錢, 50元 。 廢話不多說,進(jìn)入主題。最近在學(xué)習(xí) JS逆向 方面的知識,由于之前做過12306的自動搶票軟件,因此對

    2024年02月05日
    瀏覽(22)
  • Unity單機(jī)手游逆向破解思路(僅供學(xué)習(xí)參考,禁止用于非法行為)

    Unity單機(jī)手游逆向破解思路(僅供學(xué)習(xí)參考,禁止用于非法行為)

    一、安卓逆向常用工具 針對安卓單機(jī)游戲逆向,尤其是逆向使用Unity引擎開發(fā)的安卓游戲,只需了解下面的工具即可。 (1)Android Killer ?????? Android Killer是安卓通用逆向工具,其可以對apk進(jìn)行反向編譯,得到smail代碼,用戶可以更改smail代碼后,對apk重新打包,以實(shí)現(xiàn)破解

    2024年01月19日
    瀏覽(25)
  • 爬蟲逆向?qū)崙?zhàn)(二十)--某99網(wǎng)站登錄

    爬蟲逆向?qū)崙?zhàn)(二十)--某99網(wǎng)站登錄

    主頁地址:某99網(wǎng)站 1、抓包 通過抓包可以發(fā)現(xiàn)登錄接口是AC_userlogin 2、判斷是否有加密參數(shù) 請求參數(shù)是否加密? 通過查看“載荷”可以發(fā)現(xiàn) txtPassword 和 aws 是加密參數(shù) 請求頭是否加密? 無 響應(yīng)是否加密? 無 cookie是否加密? 無 1、看啟動器 查看啟動器發(fā)現(xiàn)有一個 NDUser_L

    2024年02月11日
    瀏覽(30)
  • 爬蟲逆向?qū)崙?zhàn)(十三)--某課網(wǎng)登錄

    爬蟲逆向?qū)崙?zhàn)(十三)--某課網(wǎng)登錄

    主頁地址:某課網(wǎng) 1、抓包 通過抓包可以發(fā)現(xiàn)登錄接口是user/login 2、判斷是否有加密參數(shù) 請求參數(shù)是否加密? 通過查看“載荷”模塊可以發(fā)現(xiàn)有一個 password 加密參數(shù),還有一個 browser_key 這個可以寫死不需要關(guān)心 請求頭是否加密? 無 響應(yīng)是否加密? 無 cookie是否加密? 無

    2024年02月12日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包