pyd文件逆向的方法实现

 更新时间:2024年03月27日 10:04:43   作者:黑剑客与剑  
pyd文件是由非 Python,其它编程语言编写编译生成的 Python 扩展模块,本文主要介绍了pyd文件逆向的方法实现,具有一定的参考价值,感兴趣的可以了解一下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

1.何为pyd文件

? .pyd 文件是由非 Python,其它编程语言编写 (或直接把 .py 文件转换成 .c 中间文件) 编译生成的 Python 扩展模块,是类似 .so .dll 动态链接库的一种 Python 文件。(当然,python代码也可以打包为pyd)

? 为啥要打包成pyd文件呢?因为pyd文件可以更好的防止反编译,只能反汇编。如果你直接打包将python代码直接打包为exe,是可以直接反编译源代码的。还有可以将c++,c等编译为pyd给python调用。

2.浅浅试一下逆向hello,world

? 开始第一次,一般都是从hello,world开始学习,这里我们也用hello来进行逆向。

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我写了两个函数,一个say_hello,一个say_sorry。我们的目标就是改变函数功能,将say_hello输出sorry,say_sorry输出hello。

我们现在运行main.py。会直接生成test1.cp38-win_amd64.pyd的文件,这里我们新开一个py文件,名字叫测试.py。在这个代码里面输入这样的代码。其实这个pyd就是和python的模块差不多。可以通过import调用里面的函数。

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

这样就会输出hello和sorry。当然,我们可能开始不知道这个里面有啥函数,我们可以利用help命令来开里面的函数

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我们可以进行调用。

3.开始逆向

? 这里,我们要用ida进行逆向。将pyd文件拿到ida里面。

在这里插入图片描述

点击这个view,选择里面对的string。查看字符串

在这里插入图片描述

这里我们以GCTL为界限,我们查看以上的字符串。

在这里插入图片描述

可以看到,我们看到了sorry和hello这两个字符串。以及我们的函数名字。这里我们点击进入hello。

在这里插入图片描述

可以看到这个玩意,我们现在的任务就是修改掉这个hello改成sorry。再保存到pyd文件就行。

4.修改字节

在这里插入图片描述

点击这个edit,选择这个

在这里插入图片描述

选出change byte。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JVvEaHFb-1659422415676)(C:/Users/zha/AppData/Roaming/Typora/typora-user-images/image-20220802142004663.png)]

这里是使用的16进制,我们随便找个网站,将sorry转为16进制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QHIA4fRa-1659422415677)(C:/Users/zha/AppData/Roaming/Typora/typora-user-images/image-20220802142058479.png)]

转完之后,将16进制填上去

填完毕后,可以看到。hello已经变成了sorry了

这里我们保存一下,还是再patch program里面,选择apply xxxx input file 保存文件。保存完成后。

5.测试一下修改的pyd

还是同样的代码。

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

可以看到输出的两个sorry。可以看到我们的修改成功了。

在这里插入图片描述

6.其他方法

? 当然,除了这个ida修改字符串等,还有其他方法,比如hook python代码。获取传参等。比如,你通过dir函数看到这个pyd文件用了base64模块。那你可以直接hook base64模块。来获取传参。这里就不展开了,有兴趣,可以自己写个python代码打包成pyd,自己逆向看看。

到此这篇关于pyd文件逆向的方法实现的文章就介绍到这了,更多相关pyd文件逆向内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • 用Python给文本创立向量空间模型的教程

    用Python给文本创立向量空间模型的教程

    这篇文章主要介绍了用Python给文本创立向量空间模型的教程,比如文中举例将文本中的词频转为量化的矩阵,需要的朋友可以参考下
    2015-04-04
  • Django中针对基于类的视图添加csrf_exempt实例代码

    Django中针对基于类的视图添加csrf_exempt实例代码

    这篇文章主要介绍了Django中针对基于类的视图添加csrf_exempt实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • 利用Python实现定时程序的方法

    利用Python实现定时程序的方法

    在 Python 中,如何定义一个定时器函数呢?本文主要介绍了2种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 用Python下载一个网页保存为本地的HTML文件实例

    用Python下载一个网页保存为本地的HTML文件实例

    今天小编就为大家分享一篇用Python下载一个网页保存为本地的HTML文件实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python中Subprocess的不同函数解析

    Python中Subprocess的不同函数解析

    这篇文章主要介绍了Python中Subprocess的不同函数解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 关于Python操作Excel的基本方法

    关于Python操作Excel的基本方法

    这篇文章主要介绍了关于Python操作Excel的基本方法,Python是一种功能强大的编程语言,可以用于许多任务,包括处理Excel文件,需要的朋友可以参考下
    2023-05-05
  • Django contrib auth authenticate函数源码解析

    Django contrib auth authenticate函数源码解析

    这篇文章主要介绍了Django contrib auth authenticate函数源码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • python imread函数详解

    python imread函数详解

    这篇文章主要介绍了python imread函数详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 简单了解python 生成器 列表推导式 生成器表达式

    简单了解python 生成器 列表推导式 生成器表达式

    这篇文章主要介绍了简单了解python 生成器 列表推导式 生成器表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python闭包和装饰器用法实例详解

    Python闭包和装饰器用法实例详解

    这篇文章主要介绍了Python闭包和装饰器用法,结合实例形式详细分析了Python闭包和装饰器的相关概念、原理、使用技巧与相关操作注意事项,需要的朋友可以参考下
    2019-05-05

最新评论

?


http://www.vxiaotou.com