最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

1.何為pyd文件

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

? 為啥要打包成pyd文件呢?因?yàn)閜yd文件可以更好的防止反編譯,只能反匯編。如果你直接打包將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"))

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

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

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

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

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

這樣就會輸出hello和sorry。當(dāng)然,我們可能開始不知道這個(gè)里面有啥函數(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里面。

在這里插入圖片描述

點(diǎn)擊這個(gè)view,選擇里面對的string。查看字符串

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

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

4.修改字節(jié)

在這里插入圖片描述

點(diǎn)擊這個(gè)edit,選擇這個(gè)

在這里插入圖片描述

選出change byte。

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

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

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(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()

可以看到輸出的兩個(gè)sorry。可以看到我們的修改成功了。

在這里插入圖片描述

6.其他方法

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

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

相關(guān)文章

  • Python使用matplotlib繪制圖形大全(曲線圖、條形圖、餅圖等)

    Python使用matplotlib繪制圖形大全(曲線圖、條形圖、餅圖等)

    matplotlib 是一個(gè)用于創(chuàng)建靜態(tài)、動態(tài)和交互式可視化圖形的 Python 庫,它被廣泛用于數(shù)據(jù)可視化,并且可以與多種操作系統(tǒng)和圖形后端一起工作,本文給大家介紹了Python使用matplotlib繪制圖形大全,需要的朋友可以參考下
    2024-06-06
  • python 爬取小說并下載的示例

    python 爬取小說并下載的示例

    這篇文章主要介紹了python 爬取小說并下載的示例,幫助大家更好的理解和學(xué)習(xí)python爬蟲,感興趣的朋友可以了解下
    2020-12-12
  • 基于PyQt制作小紅書圖片抓取工具

    基于PyQt制作小紅書圖片抓取工具

    這篇文章主要為大家詳細(xì)介紹了如何基于PyQt制作一個(gè)小紅書圖片抓取工具,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • python自動結(jié)束mysql慢查詢會話的實(shí)例代碼

    python自動結(jié)束mysql慢查詢會話的實(shí)例代碼

    這篇文章主要介紹了python自動結(jié)束mysql慢查詢會話,主要涉及到了mysql慢查詢會話查詢,定時(shí)任務(wù)的相關(guān)知識,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2019-10-10
  • Python編寫的com組件發(fā)生R6034錯(cuò)誤的原因與解決辦法

    Python編寫的com組件發(fā)生R6034錯(cuò)誤的原因與解決辦法

    pythoncom27.dll可能沒有包含manifest信息,或者沒有包含正確的manifest信息,或者系統(tǒng)中的c++ runtime library受到破壞都有可能造成這種現(xiàn)象
    2013-04-04
  • Python竟能畫這么漂亮的花,帥呆了(代碼分享)

    Python竟能畫這么漂亮的花,帥呆了(代碼分享)

    這篇文章主要介紹了用Python作圖的一個(gè)簡單實(shí)例,通過turtle模塊實(shí)現(xiàn)作圖,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • python3使用QQ郵箱發(fā)送郵件

    python3使用QQ郵箱發(fā)送郵件

    這篇文章主要為大家詳細(xì)介紹了python3使用QQ郵箱發(fā)郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • python transpose()處理高維度數(shù)組的軸變換的實(shí)現(xiàn)

    python transpose()處理高維度數(shù)組的軸變換的實(shí)現(xiàn)

    本文主要介紹了python transpose()處理高維度數(shù)組的軸變換的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • Python實(shí)現(xiàn)孤立隨機(jī)森林算法的示例代碼

    Python實(shí)現(xiàn)孤立隨機(jī)森林算法的示例代碼

    孤立森林(isolation?Forest)是一種高效的異常檢測算法,它和隨機(jī)森林類似,但每次選擇劃分屬性和劃分點(diǎn)(值)時(shí)都是隨機(jī)的,而不是根據(jù)信息增益或基尼指數(shù)來選擇。本文將用Python實(shí)現(xiàn)這一算法,需要的可以參考一下
    2022-03-03
  • Python交換變量

    Python交換變量

    Python美味第一頓,來個(gè)方便快捷的變量交換!為什么是Python?!因?yàn)镻ython中交換變量不需要臨時(shí)變量!
    2008-09-09

最新評論

龙泉市| 梓潼县| 成武县| 唐山市| 禹州市| 安宁市| 喀什市| 三都| 屏南县| 布尔津县| 沈阳市| 杭州市| 临猗县| 柳林县| 寿阳县| 桐庐县| 城市| 宁晋县| 新和县| 会东县| 都江堰市| 嘉鱼县| 永济市| 昆明市| 平潭县| 松江区| 丹东市| 隆子县| 宁德市| 拜泉县| 贡嘎县| 湖北省| 霞浦县| 顺平县| 瑞昌市| 治多县| 黑龙江省| 伊通| 义乌市| 宜川县| 西华县|