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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

005 NsPack 1.4 之附加数据初探

發布時間:2025/3/21 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 005 NsPack 1.4 之附加数据初探 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • 查殼
      • OD脫殼
      • 修復導入表
      • 處理附加數據
      • 關于附加數據
        • NO.1
        • NO.2
        • NO.3

查殼

拿到樣本之后先查殼 發現是NsPack 后面還有個Overlay 看到這個就要警惕了 說明PE程序尾部有附加數據

OD脫殼


載入OD之后在入口點發現了pushfd和pushad 于是采用最快的脫殼方法
使用Ctrl+S鍵 查找所有命令

查找對應的兩條命令

在jmp的地方下斷點 F7就能到達OEP 之后dump文件

修復導入表

這一次我們使用LoadPE脫殼 選中目標進程 依次執行下面兩個步驟

  • 修正鏡像大小
  • 完整轉存

  • 接著使用ImportREC修復導入表

    查找到的IAT只有兩條 明顯有問題 直接dump文件


    運行之后 顯示文件中的數據無效 應該是剛剛的附加數據的問題

    處理附加數據


    將原程序用LoadPE查看 計算出PE文件的結束位置 即ROffset+RSize=0xCA00
    將目標程序拖進010Edit 找到0xCA00的位置 右鍵選擇 標記選擇開始


    然后拖到最下面 右鍵選擇 標記選擇結束 復制數據


    接著打開已經脫殼修復好的文件 拖到文件末尾 粘貼數據 保存

    程序正常運行 脫殼完成

    關于附加數據

    關于附加數據 不同的殼情況也不一樣 總的來說 會有三種情況

    NO.1

    有些殼雖然有overlay但是卻不用特別處理 因為他根本就沒有用到過這些數據

    NO.2

    為什么有些殼要定位指針? 所謂的dump就是把內存中的數據轉儲到磁盤 dump下來之后 文件對齊和內存對齊粒度不一樣 overlay數據的起始地址就相應的發生了改變 所以在這個時候直接粘貼附加數據是行不通的 當需要重設指針的時候需要在脫殼后的程序的SetFilePointer下斷點 然后對原先的文件指針進行棧回溯跟蹤 一直往上找到賦值的位置 然后修改會正確的指針 就可以了

    NO.3

    但是為什么有些殼可以直接粘貼overlay數據呢 這是因為目標程序在使用附加數據的時候需要用到兩個函數 一個是CreateFile SetFilePointer 一個用于打開文件 一個用于設置文件指針

    DWORD SetFilePointer(HANDLE hFile, //在用CreateFileA打開后得到的文件句柄LONG lDistanceToMove, //要移動的距離,這個是低32位PLONG lpDistanceToMoveHigh, //要移動的距離,這是高32位,要注意這是一個指向數據的指針DWORD dwMoveMethod //表示指針開始的位置);

    使用這個函數的時候會出現一種情況 就是講第四個參數直接設置為FILE_END 然后將第二個參數設置為一個負值 負數表示向前移動 FILE_END表示設置到文件末尾 而附加數據無論在原來未脫殼的文件中和還是在脫殼的文件中,因為我們復制的是整個overlay區域,他的overlay部分的數據對于最后的一個字節的距離是不變的。他每次都用FILE_END當然我們這樣復制就不需要重定位指針了,也就是說即使我們把原來的文件(從0地址開始)全部復制到脫殼后的文件中也是能夠運行的,因為他是靠與最后的地址的距離來定位讀取數據。換個說法,如果這個時候你把最后一個數據刪掉,或者少復制哪怕是一個字節,就不能運行了。這也是我們為什么要先修復導入表的原因
    總結:也就是說如果你把附加數據復制到脫殼后的程序發現能夠運行,呵呵~恭喜你,你碰巧遇到用FILE_END為指針的程序。
    關于附加數據可以去看Lenux大神的淺談脫殼中的附加數據問題(overlay) 附上看雪鏈接 以上三個問題也是我從這篇文章中得到答案的
    https://bbs.pediy.com/thread-9182.htm

    需要相關文件可以到我的Github下載:https://github.com/TonyChen56/Unpack-Practice

    總結

    以上是生活随笔為你收集整理的005 NsPack 1.4 之附加数据初探的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。