python逆向入门教程,python入门教程

图片 1

2、ctypes

先是介绍一下ctypes,它是一个用以Python的表面函数库,提供了与C语言包容的数据类型,允许调用动态链接库或分享库中的函数,还足以打包那些库。下边是ctypes中的数据类型与C语言、Python中的数据类型的相应关系。

图片 2

ctypes中的数据类型全体经过class来落实,在Python中加载C库涉及如下多少个类。

  1. class ctypes.CDLL
    加载分享库,使用正规C函数调用惯例即cdecl,重临类型为int。
  2. class ctypes.奥莱DLL
    加载分享库,只用于Windows平台,使用stdcall函数调用惯例,重临类型为HRESULT。
  3. class ctypes.WinDLL
    加载分享库,只用于Windows平台,使用stdcall函数调用惯例,再次回到类型为int。
  4. class ctypes.PyDLL
    相通于CDLL,与近期四个例外的是,在函数调用时期不会自由GIL,Global
    Interpreter Lock。
  5. class ctypes.LibraryLoader(dlltype)
    dlltype为CDLL、奥莱DLL、WinDLL、PyDLL,这几个类有八个加载分享库的函数LoadLibrary。

加载C库更简明的主意是使用如下多少个优先创立的类实例。

ctypes.cdll
ctypes.oledll
ctypes.windll
ctypes.pydll
ctypes.pythonapi

上边提到了函数调用惯例cdecl和stdcall,cdecl的情趣是函数的参数从右往左依次压入栈内,函数的调用者在函数施行到位现在担任函数的平衡,常用来X86架构的C语言里,再次来到值存款和储蓄在EAX寄放器中,从汇编代码的角度来看,函数参数从右往左依次压栈,然后调用函数,最终修正栈指针ESP为原来的职位。stdcall,参数字传送递的逐意气风发也是从右到左,然则栈的平衡管理由函数自个儿产生,实际不是调用者,再次回到值雷同存款和储蓄在EAX中,也正是说,函数参数压栈、函数调用之后并未有像cdecl相近的栈指针ESP移动。

上边包车型地铁例证在Python中调用C的printf函数,printf归于“C:\Windows\System32\msvcrt.dll”,也就是Linux上的“libc.so”。

from ctypes import *

msvcrt = cdll.msvcrt
message = b"Hello World\n"
msvcrt.printf(b"Message is %s", message)

地点的代码输出“Message is Hello
World”。此外,ctypes还允许在Python中定义结交涉同步等其余高等功能,详细介绍请参照他事他说加以考察https://docs.python.org/3.6/library/ctypes.html?highlight=ctypes\#。

1-3 天内容为Linux幼功命令

3、调节和测验原理

采纳调试器,能够对前后相继开展动态追踪和解析,极其是涉嫌到exploit、fuzzer和病毒深入分析的时候,动态深入分析程序的力量就突显优异重大了。调节和测量检验程序时,如若得以拿走源代码,调试起来就便于一些,相当于晶莹剔透的白盒测量检验,若无源代码,也正是黑盒测量检验,想要拿到突出的结果,这就亟须有所无瑕的逆向技艺和逆向工具的增加援救。黑盒测量检验满含顾客方式与根本格局二种情状,两个有两样的权柄。

CPU的寄放器能够对小量的多少开展急忙的存取访谈,在X86指令集里,一个CPU有几个通用存放器:EAX、EDX、ECX、ESI、EDI、EBP、ESP和EBX,以致别的的贮存器,上边各种介绍。
EAX:累积贮存器,除了用于存款和储蓄函数的归来值外也用于施行总计的操作,多数优化的X86指令集都特意设计了针对EAX寄放器的读写和计算指令。

EDX:数据贮存器,本质上是EAX存放器的延伸,协理EAX存放器实现更加多复杂的计量操作。
ECX:计数存放器,用于循环操作,总括是向下实际不是进步的,由大减到小。
ESI:Source
Index,源操作数指针,存款和储蓄着输入的数据流之处,用于读,高效地管理循环操作的数码。
EDI:Destination
Index,指标操作数指针,存款和储蓄了总计结果存款和储蓄的任务,用于写,高效地管理循环操作的数目。
ESP:Stack
Pointer,栈指针,负担函数的调用和栈的操作,函数调用时压栈参数和重返地址,指向栈顶即再次来到地址。
EBP:Base
Pointer,基指针,担任函数的调用和栈的操作,函数调用时压栈参数和重回地址,指向栈底。
EBX:唯风流洒脱叁个平素不异样用项的贮存器,作为额外的数码存款和储蓄器。
EIP:Instruction Pointer,指令指针,总是指向那时候要实施的一声令下。

深谙调节和测量试验器的心上大家都精通断点,断点其实正是一个调治事件,此外事件如杰出的段错误(Segment
Fault卡塔 尔(阿拉伯语:قطر‎等。断点包括软件断点、硬件断点和内存断点,用于暂停被奉行顺序。

软件断点:三个单字节的下令,将调整权转移给调试器的断点管理函数。汇编指令是CPU实践的命令的尖端代表方法,如上面包车型客车汇编指令MOV
EAX,
EBX,告诉CPU把仓库储存在EBX寄放器里的事物放到EAX寄放器,可是CPU并不领会这几个汇编指令,必需换车为可以预知让CPU识其余操作码8BC3,假使那大器晚成操作发生在地址0x44332211,为了在此个地址设置断点,暂停CPU,供给从2个字节的操作码8BC3中换出二个单字节的操作码,那几个单字节的操作码也便是3号中断指令,INT3,一条能让CPU暂停的授命,对应的操作码为0xCC,具体如下边包车型客车代码片段所示。当调节和测量检验器被报告在指标地址设置二个断点时,它首先读取目的地点的第一个字节的操作码然后保存起来,同不经常间把地方存款和储蓄在中间的间歇列表中,接着,调节和测量检验器把3号中断指令对应的操作码0xCC写到刚才之处,当CPU推行到替换后的操作码的时候,CPU暂停,并触及二个INT3事变,这时调节和测验器就会捕捉到这几个事件,然后调试器通过EIP判定那此中断地址是还是不是是大家设置的断点,若是是,就把相应的操作码写回以苏醒程序的平时运行。软件断点包含一回性断点和持续性断点,前者生效一回,前者间接生效,不见到成效后将其从暂停列表移除。须要专一的是,当大家改动了被调节和测量试验程序的内部存款和储蓄器数据时,同一时候改革了运维时软件的CRC即循环冗余代码校验和,CRC是黄金年代种校验数据是不是被改成的机制,广泛应用于文件、内部存款和储蓄器、文本、网络数据包等任何想监视数据的位置,它将一定范围内的多寡开展hash计算,然后将hash值同以前的hash值实行相比,判别数据是还是不是变动,为了在这里种特有的情景下也能调节和测量试验程序,就要动用下面介绍的硬件断点了。

地址: 操作码 汇编指令
0x44332211: 8BC3 MOV EAX, EBX
0x44332211: CCC3 MOV EAX, EBX

硬件断点:在小块区域内设置断点,归于CPU品级,使用了D讴歌MDX0到DENVISION7共多少个特别的调节和测量试验寄存器,这个存放器特地用来管理硬件断点。DQashqai0到D本田CR-V3存款和储蓄硬件断点地址,意味着同有的时候候内最多只好有4个硬件断点,D福睿斯4和DLacrosse5保留,D福睿斯6是气象贮存器,表达被断点触发的调和事件的品种,DXC907是按钮存放器,同有时候也蕴藏了断点的两样类别,蕴涵指令试行时暂停、数据足以写入时停顿、有数量读也许写但不施行时脚刹踏板。硬件断点使用1号中断指令INT1,负担硬件中断和步进事件。硬件断点的表征是同一时间只好设置多少个断点,并且断点起效率的区域独有四个字节,借使想要追踪第一次全国代表大会块内部存款和储蓄器数据,请使用上面介绍的内部存款和储蓄器断点。

内部存款和储蓄器断点:用于大块区域,不是真的的断点,而是改动了内部存储器中某些块可能页的权力。多少个内部存款和储蓄器页是操作系统管理的微乎其微的内部存款和储蓄器单位,三个内部存款和储蓄器页被申请成功后,就具备了八个权限集,如可施行页、可读页、可写页,这么些决定了内部存款和储蓄器该怎么样被访问,任何对体贴页的拜会都会抓住那么些,之后页面恢复生机访谈前的情况。

如上正是本文的全体内容,希望对我们的就学抱有助于,也希望大家多多点拨帮客之家。

http://www.bkjia.com/Pythonjc/1294210.htmlwww.bkjia.comtruehttp://www.bkjia.com/Pythonjc/1294210.htmlTechArticlepython逆向入门教程,python入门教程 1、开辟条件
我们在Windows
10上起来python逆向之旅,首先最初搭建开采条件,python解释器使用新型的3.6.1,…

有点大,总共有19G差不多!

1、开辟条件

我们在Windows
10上最初python逆向之旅,首先早先搭建开荒意况,python解释器使用新型的3.6.1,IDE使用PyCharm社区版2017.1.3,下载地址如下所示,下载达成后间接双击安装包安装就可以,随后设置PyCharm的Project
Interpreter为刚刚设置的Python解释器就能够了。

【Python】https://www.python.org/downloads/
【PyCharm】http://www.jetbrains.com/pycharm/download/\#section=windows

本套教程15天(黑马技士的教师时间算的卡塔尔国

python逆向入门教程,python入门教程

直接上海教室吧

亟需的留言小编发你。

学前景况搭建

14-15 天内容为 飞机战置身事外项目演习

4-13 天内容为Python底子教程

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图