0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何主動(dòng)調(diào)用獲取flag

Q哥學(xué)逆向 ? 來(lái)源:Linux逆向 ? 作者:Linux逆向 ? 2020-10-10 09:44 ? 次閱讀

最近在看雪Android區(qū)看到九月份的一篇優(yōu)秀貼, 文章從過(guò)反調(diào)試和IDA動(dòng)靜態(tài)調(diào)試角度解題,甚至還得解析得到RC4密鑰,講得非常細(xì)致,雖然我也是新手,但是這么去逆向,讓人覺(jué)得太難懂了。

明明有強(qiáng)大的frida工具,可以無(wú)需過(guò)反調(diào)試,無(wú)需IDA去動(dòng)靜態(tài)調(diào)試,無(wú)需獲取RC4密鑰,直接用主動(dòng)調(diào)用獲取flag,何必走繁瑣的路呢?

首先直接JADX打開(kāi)APK,沒(méi)有加殼,直接可以看到核心代碼如下,用戶(hù)輸入直接通過(guò)JNI函數(shù)greywolf對(duì)輸入字符串做檢測(cè)

利用IDA打開(kāi)libwolf.so,沒(méi)有找到greywolf函數(shù),所以該函數(shù)肯定是通過(guò)registerNatives注冊(cè)的,于是直接用frida拿到greywolf偏移,為0X14075。

然后IDA快捷鍵按G,輸入0X14075,直接跳轉(zhuǎn)到greywolf函數(shù)(函數(shù)名稱(chēng)換成了bc)處,再F5查看偽代碼,如下。該函數(shù)只有l(wèi)ine15和line17兩處return,先分析第二處return。

跟蹤wolf_de函數(shù),看到明顯的RC4解密算法,且密鑰就是unk_4E13A,所以直接調(diào)用wolf_de,傳入待解密字符串,其返回值就是解密結(jié)果,我們直接利用frida去主動(dòng)調(diào)用wolf_de,去解密bc函數(shù)中l(wèi)ine16行“5B694AADB2DC559E44B84637A2D61F”得到“Password Error~”,效果如下。

所以要想驗(yàn)證成功,必然走到line15行的j_jk函數(shù),繼續(xù)跟蹤此函數(shù),同樣手法在jk函數(shù)中l(wèi)ine15可以解析得到正確顯示,所以跟蹤dc函數(shù)。

跟蹤上圖dc函數(shù),一切皆從return往上跟蹤,最后在ds函數(shù)中看到如下代碼,該代碼將輸入字符與line24解密字符串比較,相等則為真。

所以直接主動(dòng)調(diào)用,直接看到flag為“hello5.1”,上機(jī)驗(yàn)證正確。

責(zé)任編輯:YYX

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 密鑰
    +關(guān)注

    關(guān)注

    1

    文章

    134

    瀏覽量

    19658
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4237

    瀏覽量

    61969
  • Flag
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    8112

原文標(biāo)題:逆向基礎(chǔ)題十:獲取flag

文章出處:【微信號(hào):Reverse16,微信公眾號(hào):Q哥學(xué)逆向】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CC2340R5從機(jī)主動(dòng)notify就會(huì)導(dǎo)致BLE卡住,為什么?

    函數(shù):主機(jī)打開(kāi)notify enable,然后寫(xiě)char1,從機(jī)調(diào)用上面的notify函數(shù)響應(yīng)數(shù)據(jù),這個(gè)是沒(méi)有問(wèn)題的。但是,如果是主機(jī)沒(méi)有寫(xiě),從機(jī)主動(dòng)notify一次數(shù)據(jù)就會(huì)導(dǎo)致BLE超時(shí)了,搜不到信號(hào)了。有人可以解答下是為什么么。
    發(fā)表于 05-30 08:31

    OpenAI API Key獲取與充值教程:助開(kāi)發(fā)者解鎖GPT-4.0 API

    OpenAI 的 API Key,以及如何使用這個(gè) Key 來(lái)調(diào)用 GPT-4.0 API。 第一步:獲取 OpenAI API Key 要開(kāi)始使用 OpenAI 的服務(wù),你首先需要注冊(cè)并獲取一個(gè) API
    的頭像 發(fā)表于 04-28 16:35 ?7885次閱讀
    OpenAI API Key<b class='flag-5'>獲取</b>與充值教程:助開(kāi)發(fā)者解鎖GPT-4.0 API

    verilog如何調(diào)用其他module

    。 1.2 為什么要調(diào)用其他模塊? 在復(fù)雜的設(shè)計(jì)中,我們通常需要實(shí)現(xiàn)各種不同的功能,并且這些功能往往可以通過(guò)不同的模塊來(lái)實(shí)現(xiàn)。通過(guò)調(diào)用其他模塊,我們可以將問(wèn)題分解為更小的子問(wèn)題,并且可以更方便地實(shí)現(xiàn)和維護(hù)我們的設(shè)計(jì)。 1.3 調(diào)用
    的頭像 發(fā)表于 02-22 15:56 ?4155次閱讀

    鴻蒙開(kāi)發(fā)-OpenHarmony輕量系統(tǒng)之獲取當(dāng)?shù)貢r(shí)間

    在輕量設(shè)備里面,我們常常需要獲取本地時(shí)間,用于時(shí)間顯示,log記錄,幫助RTC芯片糾正時(shí)間等等。我們?cè)谥霸O(shè)計(jì)了一個(gè)智慧時(shí)鐘,需要使用到本地當(dāng)前時(shí)間,因此本篇文章想在OpenHarmony上實(shí)現(xiàn)SNTP獲取本地時(shí)間,并將此功能集成為一個(gè)模塊,便于我們的主程序
    的頭像 發(fā)表于 01-22 17:48 ?749次閱讀
    鴻蒙開(kāi)發(fā)-OpenHarmony輕量系統(tǒng)之<b class='flag-5'>獲取</b>當(dāng)?shù)貢r(shí)間

    Linux內(nèi)核中信號(hào)相關(guān)的系統(tǒng)調(diào)用

    正如我們所知,運(yùn)行在用戶(hù)態(tài)下的程序可以發(fā)送和接收信號(hào)。這意味著必須定義一組系統(tǒng)調(diào)用來(lái)允許這類(lèi)操作。不幸的是,由于歷史原因,有些系統(tǒng)調(diào)用可能功能相同。 因此,其中一些系統(tǒng)調(diào)用永遠(yuǎn)不會(huì)被調(diào)用
    的頭像 發(fā)表于 01-20 09:34 ?522次閱讀

    cmd_tbl_t結(jié)構(gòu)體變量調(diào)用命令信息

    一個(gè)cmd_tbl_t結(jié)構(gòu)體變量包含了調(diào)用一條命令的所需要的信息。 ? 對(duì)于環(huán)境變量bootcmd,執(zhí)行run_command(bootcmd, flag)之后,最終是將bootcmd中的參數(shù)解析為
    的頭像 發(fā)表于 12-04 17:37 ?474次閱讀
    cmd_tbl_t結(jié)構(gòu)體變量<b class='flag-5'>調(diào)用</b>命令信息

    調(diào)用第三方API接口會(huì)遇到哪些問(wèn)題?如何解決?

    在實(shí)際工作中,我們經(jīng)常需要在項(xiàng)目中調(diào)用第三方API接口,獲取數(shù)據(jù),或者上報(bào)數(shù)據(jù),進(jìn)行數(shù)據(jù)交換和通信。
    的頭像 發(fā)表于 11-30 11:05 ?1915次閱讀
    <b class='flag-5'>調(diào)用</b>第三方API接口會(huì)遇到哪些問(wèn)題?如何解決?

    python調(diào)用windows命令

    Python是一種強(qiáng)大的編程語(yǔ)言,可以用于開(kāi)發(fā)各種不同類(lèi)型的應(yīng)用程序。其中一個(gè)常見(jiàn)的用途是使用Python調(diào)用Windows命令來(lái)執(zhí)行特定的任務(wù)。在本文中,我們將詳細(xì)討論如何使用Python調(diào)用
    的頭像 發(fā)表于 11-29 14:34 ?827次閱讀

    如何在AOSP12中查看binder調(diào)用信息呢?

    部分APP不會(huì)使用常規(guī)的framework api調(diào)用系統(tǒng)的一些函數(shù)獲取信息,但是如果他自己構(gòu)建binder調(diào)用的信息獲取,最后都會(huì)跑到這個(gè)函數(shù)中去。
    的頭像 發(fā)表于 11-27 09:40 ?711次閱讀

    如何查看及更改函數(shù)/函數(shù)塊的調(diào)用環(huán)境

    模塊化設(shè)計(jì)的思想是把一些相似的功能(比如電機(jī)控制、閥控制)設(shè)計(jì)成函數(shù)或函數(shù)塊,這樣就可以反復(fù)調(diào)用。其優(yōu)點(diǎn)是:使程序架構(gòu)更加清晰,避免重復(fù)編寫(xiě)相似功能的代碼。不過(guò)可能會(huì)產(chǎn)生一個(gè)疑惑:既然PLC的程序
    的頭像 發(fā)表于 11-17 09:08 ?665次閱讀
    如何查看及更改函數(shù)/函數(shù)塊的<b class='flag-5'>調(diào)用</b>環(huán)境

    什么是遠(yuǎn)程過(guò)程調(diào)用

    開(kāi)發(fā)環(huán)境:Ubuntu VS Code 編譯器:g++ 編程語(yǔ)言:C++ 框架源碼下載:GitHub 認(rèn)識(shí)RPC RPC的全稱(chēng)是遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call
    的頭像 發(fā)表于 11-10 10:10 ?826次閱讀
    什么是遠(yuǎn)程過(guò)程<b class='flag-5'>調(diào)用</b>

    shell調(diào)用java并返回執(zhí)行結(jié)果

    在Shell腳本中調(diào)用Java程序并獲取執(zhí)行結(jié)果,可以通過(guò)以下步驟實(shí)現(xiàn): 編寫(xiě)Java程序:首先,你需要編寫(xiě)一個(gè)Java程序,包含你想要執(zhí)行的功能。確保你的Java程序包含一個(gè)主類(lèi)(包含main方法
    的頭像 發(fā)表于 11-08 10:32 ?1195次閱讀

    MethodHandle調(diào)用示例

    機(jī)制,主要是為了JVM支持動(dòng)態(tài)語(yǔ)言。 一個(gè)MethodHandle調(diào)用示例 首先,讓指北君給大家演示一下最基本的MethodHandle使用。 第一步:創(chuàng)建查找對(duì)象:Lookup // 獲取Look
    的頭像 發(fā)表于 10-13 14:17 ?443次閱讀
    MethodHandle<b class='flag-5'>調(diào)用</b>示例

    LabVIEW命令行調(diào)用exe傳入的參數(shù)如何獲取

    有些場(chǎng)景下,我們用LabVIEW開(kāi)發(fā)的應(yīng)用程序,需要通過(guò)命令行來(lái)調(diào)用,并向該應(yīng)用程序傳遞參數(shù),那么在程序中如何才能獲取這些參數(shù)呢?
    發(fā)表于 10-11 09:28 ?1964次閱讀
    LabVIEW命令行<b class='flag-5'>調(diào)用</b>exe傳入的參數(shù)如何<b class='flag-5'>獲取</b>

    如何才能獲取LabVIEW程序中的傳遞參數(shù)呢?

    有些場(chǎng)景下,我們用LabVIEW開(kāi)發(fā)的應(yīng)用程序,需要通過(guò)命令行來(lái)調(diào)用,并向該應(yīng)用程序傳遞參數(shù),那么在程序中如何才能獲取這些參數(shù)呢?
    的頭像 發(fā)表于 10-11 09:26 ?1031次閱讀
    如何才能<b class='flag-5'>獲取</b>LabVIEW程序中的傳遞參數(shù)呢?