欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pyd文件逆向的方法實現(xiàn)

 更新時間:2024年03月27日 10:04:43   作者:黑劍客與劍  
pyd文件是由非 Python,其它編程語言編寫編譯生成的 Python 擴展模塊,本文主要介紹了pyd文件逆向的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下

1.何為pyd文件

? .pyd 文件是由非 Python,其它編程語言編寫 (或直接把 .py 文件轉(zhuǎn)換成 .c 中間文件) 編譯生成的 Python 擴展模塊,是類似 .so .dll 動態(tài)鏈接庫的一種 Python 文件。(當(dāng)然,python代碼也可以打包為pyd)

? 為啥要打包成pyd文件呢?因為pyd文件可以更好的防止反編譯,只能反匯編。如果你直接打包將python代碼直接打包為exe,是可以直接反編譯源代碼的。還有可以將c++,c等編譯為pyd給python調(diào)用。

2.淺淺試一下逆向hello,world

? 開始第一次,一般都是從hello,world開始學(xué)習(xí),這里我們也用hello來進(jìn)行逆向。

from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules=cythonize("test1.py"))

這個main.py代碼是用來將python代碼編譯為pyd的代碼

#-*- coding : utf-8-*-
def say_hello():
    print("hello")
def say_sorry():
    print("sorry")

這個test.py我寫了兩個函數(shù),一個say_hello,一個say_sorry。我們的目標(biāo)就是改變函數(shù)功能,將say_hello輸出sorry,say_sorry輸出hello。

我們現(xiàn)在運行main.py。會直接生成test1.cp38-win_amd64.pyd的文件,這里我們新開一個py文件,名字叫測試.py。在這個代碼里面輸入這樣的代碼。其實這個pyd就是和python的模塊差不多??梢酝ㄟ^import調(diào)用里面的函數(shù)。

import test1
test1.say_hello()
test1.say_sorry()
#hello
#sorry

這樣就會輸出hello和sorry。當(dāng)然,我們可能開始不知道這個里面有啥函數(shù),我們可以利用help命令來開里面的函數(shù)

help(test1)

可以看到以下輸出。

Help on module test1:

NAME
    test1

FUNCTIONS
    say_hello()
    
    say_sorry()

DATA
    __test__ = {}

FILE
    e:\xxxx\xxxxx\test1.cp38-win_amd64.pyd

None

里面的FUNCTIONS我們可以進(jìn)行調(diào)用。

3.開始逆向

? 這里,我們要用ida進(jìn)行逆向。將pyd文件拿到ida里面。

在這里插入圖片描述

點擊這個view,選擇里面對的string。查看字符串

在這里插入圖片描述

這里我們以GCTL為界限,我們查看以上的字符串。

在這里插入圖片描述

可以看到,我們看到了sorry和hello這兩個字符串。以及我們的函數(shù)名字。這里我們點擊進(jìn)入hello。

在這里插入圖片描述

可以看到這個玩意,我們現(xiàn)在的任務(wù)就是修改掉這個hello改成sorry。再保存到pyd文件就行。

4.修改字節(jié)

在這里插入圖片描述

點擊這個edit,選擇這個

在這里插入圖片描述

選出change byte。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-JVvEaHFb-1659422415676)(C:/Users/zha/AppData/Roaming/Typora/typora-user-images/image-20220802142004663.png)]

這里是使用的16進(jìn)制,我們隨便找個網(wǎng)站,將sorry轉(zhuǎn)為16進(jìn)制

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-QHIA4fRa-1659422415677)(C:/Users/zha/AppData/Roaming/Typora/typora-user-images/image-20220802142058479.png)]

轉(zhuǎn)完之后,將16進(jìn)制填上去

填完畢后,可以看到。hello已經(jīng)變成了sorry了

這里我們保存一下,還是再patch program里面,選擇apply xxxx input file 保存文件。保存完成后。

5.測試一下修改的pyd

還是同樣的代碼。

import test1
test1.say_hello()
test1.say_sorry()

可以看到輸出的兩個sorry??梢钥吹轿覀兊男薷某晒α恕?/p>

在這里插入圖片描述

6.其他方法

? 當(dāng)然,除了這個ida修改字符串等,還有其他方法,比如hook python代碼。獲取傳參等。比如,你通過dir函數(shù)看到這個pyd文件用了base64模塊。那你可以直接hook base64模塊。來獲取傳參。這里就不展開了,有興趣,可以自己寫個python代碼打包成pyd,自己逆向看看。

到此這篇關(guān)于pyd文件逆向的方法實現(xiàn)的文章就介紹到這了,更多相關(guān)pyd文件逆向內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python爬蟲破解字體加密案例詳解

    python爬蟲破解字體加密案例詳解

    這篇文章主要介紹了python爬蟲破解字體加密案例詳解,本文通過圖文實例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • python3實現(xiàn)163郵箱SMTP發(fā)送郵件

    python3實現(xiàn)163郵箱SMTP發(fā)送郵件

    這篇文章主要為大家詳細(xì)介紹了Python3實現(xiàn)163郵箱SMTP發(fā)送郵件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • python算法學(xué)習(xí)雙曲嵌入論文代碼實現(xiàn)數(shù)據(jù)集介紹

    python算法學(xué)習(xí)雙曲嵌入論文代碼實現(xiàn)數(shù)據(jù)集介紹

    由于雙曲嵌入相關(guān)的文章已經(jīng)有了一系列的代碼。本篇博客主要目的實現(xiàn)最開始的雙曲嵌入論文,將論文中有些直接寫出來的內(nèi)容進(jìn)行了細(xì)節(jié)的推導(dǎo),同時實現(xiàn)對應(yīng)的代碼
    2021-11-11
  • 將Python中的數(shù)據(jù)存儲到系統(tǒng)本地的簡單方法

    將Python中的數(shù)據(jù)存儲到系統(tǒng)本地的簡單方法

    這篇文章主要介紹了將Python中的數(shù)據(jù)存儲到系統(tǒng)本地的簡單方法,主要使用了pickle模塊,需要的朋友可以參考下
    2015-04-04
  • Python結(jié)合Redis開發(fā)一個消息訂閱系統(tǒng)

    Python結(jié)合Redis開發(fā)一個消息訂閱系統(tǒng)

    消息訂閱是一種常見的通信模式,用于實現(xiàn)系統(tǒng)之間的解耦和異步通信,本文將詳細(xì)介紹如何使用Python實現(xiàn)一個高效與可靠的消息訂閱系統(tǒng),有需要的可以了解下
    2025-03-03
  • python threading和multiprocessing模塊基本用法實例分析

    python threading和multiprocessing模塊基本用法實例分析

    這篇文章主要介紹了python threading和multiprocessing模塊基本用法,結(jié)合實例形式詳細(xì)分析了Python中threading和multiprocessing模塊基本概念、功能、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-07-07
  • python常用小腳本實例總結(jié)

    python常用小腳本實例總結(jié)

    在日常的工作中我們總會面臨到各式各樣的問題,下面這篇文章主要給大家介紹了關(guān)于python常用小腳本的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • python解析mdf或mf4文件利器之a(chǎn)sammdf用法

    python解析mdf或mf4文件利器之a(chǎn)sammdf用法

    這篇文章主要介紹了python解析mdf或mf4文件利器之a(chǎn)sammdf用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python 高級庫15 個讓新手愛不釋手(推薦)

    Python 高級庫15 個讓新手愛不釋手(推薦)

    對于初學(xué)者來說,這是一種簡單易學(xué)的編程語言;另一個原因:大量開箱即用的第三方庫,正是 23 萬個由用戶提供的軟件包使得 Python 真正強大和流行,本文給大家分享15 個讓新手愛不釋手Python 高級庫的相關(guān)知識,感興趣的朋友一起看看吧
    2021-05-05
  • python 音頻和視頻合并自動裁剪

    python 音頻和視頻合并自動裁剪

    本文主要介紹了python 音頻和視頻合并自動裁剪,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06

最新評論