日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

2.逆向分析Hello World!程序-上

發(fā)布時(shí)間:2025/6/17 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2.逆向分析Hello World!程序-上 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 先寫一個(gè)HelloWorld程序(vs2015?/?C++)
  • ?

  • 編譯鏈接生成可執(zhí)行文件XX.exe,然后用OD[OllyDbg]打開調(diào)試:
  • ?

    代碼窗口:默認(rèn)用于顯示反匯編代碼,還用于各種注釋、標(biāo)簽,分析代碼時(shí)顯示循環(huán)、跳轉(zhuǎn)位置等信息

    寄存器窗口:實(shí)時(shí)顯示CPU寄存器的值,可用于修改特定的寄存器

    數(shù)據(jù)窗口:以Hex/ASCII/Unicode值的形式顯示進(jìn)程的內(nèi)存地址,也可在此修改內(nèi)存地址

    棧窗口:實(shí)時(shí)顯示ESP寄存器指向的進(jìn)程棧內(nèi)存,并允許修改

  • EP(EntryPoint,入口點(diǎn))
  • EP是Windows可執(zhí)行文件(EXE、DLL、SYS等)的代碼入口點(diǎn),是執(zhí)行應(yīng)用程序時(shí)最先執(zhí)行的代碼的起始位置,它依賴于CPU。用OD調(diào)試XX.exe剛開始默認(rèn)跳轉(zhuǎn)的位置就是EP處。

    ?

  • 接下來(lái)是嘗試找出main()函數(shù)中的MessageBox()函數(shù)的代碼。
  • 先補(bǔ)充幾個(gè)快捷鍵:
    ????Ctrl+F2??重新開始調(diào)試(終止正在調(diào)試的進(jìn)城后再次運(yùn)行)

    ????F7??????單步步入,可以進(jìn)入到函數(shù)里

    ????F8??????單步步過(guò),不進(jìn)入任何函數(shù),往下走一條指令

    ????Ctrl+F9??一直執(zhí)行,知道遇到RETN指令,跳出函數(shù)

    加載exe到od里,直接來(lái)到EP處,然后就是一路F7/F8[這個(gè)是剛開始,后期有經(jīng)驗(yàn)了就不會(huì)這么無(wú)腦的從頭開始找了]call,是函數(shù)調(diào)用,遇到call想進(jìn)函數(shù)里看看就F7想路過(guò)就F8然后是找到這么一個(gè)地方(注意你的地址和我的地址可能不同)

    ?

    我的PE文件代碼段FOA(400)->RVA(1000)->VA(1341000)這個(gè)計(jì)算方式以后說(shuō)。

    然后就F7進(jìn)去看看:

    ?

    紅色注釋部分就是我們要找的函數(shù)。而且在call之前各種把參數(shù)push進(jìn)去,還有就是看到了字符串地址在013420F8處,從棧和內(nèi)存里也能清楚的看到:


    同時(shí)現(xiàn)在考慮下,這個(gè)調(diào)用MessageBox函數(shù)的函數(shù)不就是main函數(shù)嗎?執(zhí)行到這個(gè)函數(shù)的return處,在F8返回上一層:

    ?

    回來(lái)后就準(zhǔn)備開始執(zhí)行add了,那么上面那個(gè)call?NXYod.00341000就是main函數(shù)地址碼。這個(gè)其實(shí)是可以算出來(lái)的。還是根據(jù)FOA->RVA->VA?最后那個(gè)RVA->VA在OD里可以直接Ctrl+G輸入RVA他會(huì)自動(dòng)跳轉(zhuǎn)到VA處,比如我的FOA是400,我算出來(lái)RVA是1000(我自己寫了個(gè)計(jì)算工具),然后我在OD里直接Ctrl+G

    ?

    OK之后直接跳轉(zhuǎn)到:

    ?

    這直接就是main函數(shù)了。

    ?

    ?

    總結(jié)

    以上是生活随笔為你收集整理的2.逆向分析Hello World!程序-上的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。