国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

MacOS/iOS Mach-O應(yīng)用程序代碼混淆

哆啦安全 ? 來源:哆啦安全 ? 2023-01-15 11:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

MachObfuscator混淆器

MachObfuscator是一個(gè)Apple MacOS平臺(tái)上與編程語言無關(guān)的Mach-O二進(jìn)制符號(hào)混淆器。專業(yè)術(shù)語:

(1).混淆器

一種使軟件難以逆向的工具

(2).二進(jìn)制混淆器

一種混淆器,它在機(jī)器代碼上運(yùn)行,而不是在源代碼上運(yùn)行

(3).符號(hào)混淆器

一種僅混淆符號(hào)名稱的混淆器,不會(huì)改變程序控制流。

MachObfuscator直接轉(zhuǎn)換Mach-O文件中的符號(hào)。Mach-O格式主要用于Apple平臺(tái),作為可執(zhí)行文件和庫的機(jī)器代碼容器。MachObfuscator不需要訪問應(yīng)用程序源代碼以對(duì)其進(jìn)行模糊處理。

992f133e-9471-11ed-bfe3-dac502259ad0.png

MachObfuscator混淆器,演示效果

MachObfuscator混淆SampleApp.app應(yīng)用

9954fb62-9471-11ed-bfe3-dac502259ad0.gif

通過在MachOView中打開app的主要可執(zhí)行文件可以看到結(jié)果。MachOView顯示模糊的Objc選擇器:

99884fb2-9471-11ed-bfe3-dac502259ad0.png

混淆的Objc類名:

9997b1be-9471-11ed-bfe3-dac502259ad0.png

上面僅顯示了樣本部分混淆前后的效果。

使用說明

$ ./MachObfuscator
usage: ./MachObfuscator [-qvdhtD] [-m mangler_key] APP_BUNDLE


  Obfuscates application APP_BUNDLE in-place.


Options:
  -h, --help              help screen (this screen)
  -q, --quiet             quiet mode, no output to stdout
  -v, --verbose           verbose mode, output verbose info to stdout
  -d, --debug             debug mode, output more verbose info to stdout
  --dry-run               analyze only, do not save obfuscated files


  --erase-methtype        erase methType section (objc/runtime.h methods may work incorrectly)
  -D, --machoview-doom    MachOViewDoom, MachOView crashes after trying to open your binary (doesn't work with caesarMangler)
  --swift-reflection      obfuscate Swift reflection sections (typeref and reflstr). May cause problems for Swift >= 4.2


  --objc-blacklist-selector NAME[,NAME...]  do not obfuscate given selectors
  --objc-blacklist-selector-regex REGEXP    do not obfuscate selectors matching given regular expression


  --preserve-symtab       do not erase SYMTAB strings
  --erase-section SEGMENT,SECTION    erase given section, for example: __TEXT,__swift5_reflstr


  --erase-source-file-names PREFIX   erase source file paths from binary. Erases paths starting with given prefix
                                     by replacing them by constant string
  --replace-cstring STRING           replace arbitrary __cstring with given replacement (use with caution). Matches entire string,
  --replace-cstring-with STRING      adds padding 0's if needed. These options must be used as a pair.


  --skip-all-frameworks              do not obfuscate frameworks
  --skip-framework framework         do not obfuscate given framework
  --obfuscate-framework framework    obfuscate given framework (whitelist for --skip-all-frameworks)


  -m mangler_key,
  --mangler mangler_key   select mangler to generate obfuscated symbols


Development options:
  --xx-no-analyze-dependencies       do not analyze dependencies


Available manglers by mangler_key:
  caesar - ROT13 all objc symbols and dyld info
  realWords - replace objc symbols with random words (dyld info obfuscation supported)

MachObfuscator混淆

(1).查找應(yīng)用包中的所有可執(zhí)行文件,

(2).以遞歸方式搜索所有依賴庫,這些庫的依賴關(guān)系等等,

(3).搜索應(yīng)用包中的所有NIB文件,

(4).區(qū)分可模糊文件(應(yīng)用程序包中的文件)和不可模糊文件(應(yīng)用程序包外部的文件)

(5).從整個(gè)依賴圖中收集Obj-C符號(hào),導(dǎo)出嘗試和導(dǎo)入列表,

(6).創(chuàng)建符號(hào)白名單和符號(hào)黑名單(在不可混淆的文件中使用的符號(hào)),

(7).使用選定的漫游器修改白名單符號(hào),導(dǎo)出嘗試和導(dǎo)入列表,

(8).替換可混淆文件中的符號(hào),

(9).清除可選的部分,

(10).一次保存所有文件。

https://github.com/nigel193/ios-developer-tools
https://github.com/kam800/MachObfuscator
https://github.com/zayki/MachObfuscator

審核編輯 :李倩


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

    關(guān)注

    2

    文章

    809

    瀏覽量

    43037
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1964

    瀏覽量

    39578
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    38

    文章

    3344

    瀏覽量

    60262

原文標(biāo)題:MacOS/iOS Mach-O應(yīng)用程序代碼混淆

文章出處:【微信號(hào):哆啦安全,微信公眾號(hào):哆啦安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    為Wi-Fi通訊和USB藍(lán)牙通信控制設(shè)計(jì)并支持大型程序代碼的指紋芯片-P1032BF1

    指紋芯片 - P1032BF1是一款基于ARM Cortex-M3的單片機(jī),專為Wi-Fi /藍(lán)牙通信控制而設(shè)計(jì);能夠?qū)崿F(xiàn)指紋的圖像采集、特征提取、特征比對(duì),可應(yīng)用于智能鎖;支持大型程序代碼和擁有大型嵌入式SRAM,也可用于一般的MCU應(yīng)用。
    的頭像 發(fā)表于 01-27 09:46 ?182次閱讀
    為Wi-Fi通訊和USB藍(lán)牙通信控制設(shè)計(jì)并支持大型<b class='flag-5'>程序代碼</b>的指紋芯片-P1032BF1

    Vivado+Vitis將程序固化的Flash的操作流程

    ZYNQ 的程序固化是指將程序代碼永久存儲(chǔ)到非易失性存儲(chǔ)器中,使系統(tǒng)上電后能自動(dòng)加載運(yùn)行的過程。主要固化方式:QSPI Flash固化:常用方式,容量小,如啟動(dòng)代碼、FPGA 配置。NAND Flash固化:適合大容量
    的頭像 發(fā)表于 01-20 16:17 ?375次閱讀
    Vivado+Vitis將<b class='flag-5'>程序</b>固化的Flash的操作流程

    HarmonyOS應(yīng)用代碼混淆技術(shù)方案

    代碼混淆技術(shù)可以增加代碼的復(fù)雜性和模糊性,從而提高攻擊者分析代碼的難度。
    的頭像 發(fā)表于 11-21 16:17 ?5607次閱讀
    HarmonyOS應(yīng)用<b class='flag-5'>代碼</b><b class='flag-5'>混淆</b>技術(shù)方案

    PYQT 應(yīng)用程序框架及開發(fā)工具

    大家好,本團(tuán)隊(duì)此次分享的內(nèi)容為開發(fā)過程中使用到的PYQT 應(yīng)用程序框架及開發(fā)工具。 pYqt 是一個(gè)多平臺(tái)的 python 圖形用戶界面應(yīng)用程序框架,由于其面向?qū)ο蟆? 易擴(kuò)展(可實(shí)現(xiàn)組件編程等
    發(fā)表于 10-29 07:15

    ArkGuard混淆工具使用指南

    ArkGuard是一款源碼混淆工具,提供基礎(chǔ)混淆功能。當(dāng)軟件發(fā)布后,其代碼很容易被他人獲取分析,通過閱讀清晰的變量名、函數(shù)名,攻擊者或競(jìng)爭(zhēng)者可以非常輕松地理解代碼的邏輯結(jié)構(gòu)、業(yè)務(wù)核心算
    的頭像 發(fā)表于 09-28 16:05 ?929次閱讀
    ArkGuard<b class='flag-5'>混淆</b>工具使用指南

    學(xué)生適合使用的SOLIDWORKS 云應(yīng)用程序

    隨著科技的不斷發(fā)展,計(jì)算機(jī)輔助設(shè)計(jì)(CAD)技術(shù)已經(jīng)成為現(xiàn)代工程教育的重要組成部分。SOLIDWORKS作為一款CAD軟件,其教育版云應(yīng)用程序為學(xué)生提供了強(qiáng)大而靈活的設(shè)計(jì)平臺(tái)。本文將探討
    的頭像 發(fā)表于 09-15 10:39 ?780次閱讀
    學(xué)生適合使用的SOLIDWORKS 云<b class='flag-5'>應(yīng)用程序</b>

    當(dāng)ICE_DAT引腳和ICE_CLK引腳在應(yīng)用程序代碼中配置為備用功能時(shí),是否會(huì)導(dǎo)致編程失?。?/a>

    當(dāng)ICE_DAT引腳和ICE_CLK引腳在應(yīng)用程序代碼中配置為備用功能時(shí),是否會(huì)導(dǎo)致編程失???
    發(fā)表于 08-25 06:55

    嵌入式系統(tǒng)中,F(xiàn)LASH 中的程序代碼必須搬到 RAM 中運(yùn)行嗎?

    嵌入式系統(tǒng)里,F(xiàn)LASH 中的程序代碼并非必須搬到 RAM 中運(yùn)行,這得由硬件配置、實(shí)際性能需求和應(yīng)用場(chǎng)景共同決定。就像很多低端單片機(jī),無論是依賴片內(nèi) Flash 還是外掛的 SPI NOR
    的頭像 發(fā)表于 08-06 10:19 ?1366次閱讀
    嵌入式系統(tǒng)中,F(xiàn)LASH 中的<b class='flag-5'>程序代碼</b>必須搬到 RAM 中運(yùn)行嗎?

    請(qǐng)問如何創(chuàng)建在 RAM 區(qū)域完全獨(dú)立運(yùn)行的閃存驅(qū)動(dòng)程序代碼?

    我在開發(fā)閃存驅(qū)動(dòng)程序代碼時(shí)遇到了一個(gè)問題。我將準(zhǔn)備好的HEX文件寫入指定的RAM區(qū)域,并嘗試使用指針調(diào)用,但調(diào)用失敗,無法正常擦除或?qū)懭搿?duì)于flash的操作代碼已經(jīng)通過了單獨(dú)的測(cè)試,為了使其更加
    發(fā)表于 07-25 07:33

    FX3 UVC 無法與 Ubuntu 24.04 Cheese 或 Snapshot 相機(jī)應(yīng)用程序配合使用,怎么處理?

    Windows 和 MacOS 上運(yùn)行正常,但在 Ubuntu 上運(yùn)行失敗。我對(duì)我的 USB 描述符很有信心,但不確定我對(duì) Ubuntu 相機(jī)應(yīng)用程序發(fā)送的事件的響應(yīng)是否存在問題。我已經(jīng)包含了啟動(dòng)這兩個(gè)
    發(fā)表于 07-16 06:37

    ArkUI-X跨平臺(tái)框架接入指南

    ArkUI跨平臺(tái)框架(ArkUI-X)進(jìn)一步將ArkUI開發(fā)框架擴(kuò)展到了多個(gè)OS平臺(tái):目前支持OpenHarmony、Android、 iOS,后續(xù)會(huì)逐步增加更多平臺(tái)支持。開發(fā)者基于一套主代碼
    發(fā)表于 05-18 18:21

    如何將VCP功能添加到UVC應(yīng)用程序代碼中?

    我正在嘗試將 VCP 功能添加到 UVC 應(yīng)用程序代碼中。 我的平臺(tái)是CYUSB3011-BZXC UsbUart 示例代碼已添加到現(xiàn)有的 UVC 應(yīng)用程序中。 初始化和主循環(huán)
    發(fā)表于 05-16 06:41

    CY7C65215使用IOS中的USB CDC UART類驅(qū)動(dòng)程序是否可以與IOS一起工作?

    我知道 CY7C65215 沒有適用于 IOS 的驅(qū)動(dòng)程序。但是,使用 IOS 中的 USB CDC UART 類驅(qū)動(dòng)程序是否可以與 IOS
    發(fā)表于 04-30 07:57

    USB免驅(qū)MCU升級(jí),標(biāo)準(zhǔn)C參考程序代碼(win平臺(tái))

    編譯需要連接動(dòng)態(tài)庫gcc -o .\out\firmware_updater firmware_updater.c -L".\lib\x86" -lhidapi
    發(fā)表于 04-28 17:56 ?0次下載

    MCP:連接AI與應(yīng)用程序的開放標(biāo)準(zhǔn)!

    。 在第二種方式中,開發(fā)者需要為AI大模型編寫與具體應(yīng)用程序協(xié)作的訪問代碼,例如,開發(fā)者希望DeepSeek-R1與Gmail協(xié)作,就需要手動(dòng)編寫協(xié)作代碼。這種手動(dòng)編寫協(xié)作代碼的方式,
    的頭像 發(fā)表于 03-21 18:21 ?2200次閱讀
    MCP:連接AI與<b class='flag-5'>應(yīng)用程序</b>的開放標(biāo)準(zhǔn)!