b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

动态语言 ruby 分享python编程经历(2)

电脑杂谈  发布时间:2018-02-09 20:55:51  来源:网络整理

分享python编程经历

增加TSL加密链路也非常简单:

分享python编程经历

上述功能也可以在已经使用的连接中实现:

分享python编程经历

如何你不需要这些低级服务交互,还有些模块可以提供高层服务交互:

smtplib

ftplib

poplib

imaplib

httplib (Python 3以上版本的http客户端)

nntplib

telnetlib (应用于服务开发和之后的需要交互命令行会话)

动态语言 ruby_Pho动态语言_发布动态的语言

xmlrpclib (Python 3以上版本的xmlrpc客户端)

二进制操作或编码

当开发与服务或者文件交互的脚本时,你经常会发现需要将数据转换为不同格式或者编码。动态语言 ruby在Python2.x版本中,通常使用encode或者decode方法将字符串在不同格式之间转换。

分享python编程经历

很可惜,这种捷径在Python3.x版本中被取消了,encode和decode方法当前只可以实现字符编码,如utf-8, cp1250, iso8859, big5等。

作为替代,你现在只能使用bytes类型的两种方法实现十六进制编码:

分享python编程经历

对于Base64编码,你需要使用另外的模块(在Python2.x版本中也有):

分享python编程经历

URLs编码或者解析可以用urllib.parse模块实现(Python2.x版本中是urllib)

分享python编程经历

Python普通数据类型(如int,float,str)与二进制之间的一般转换,可以在stuct模块中实现:

分享python编程经历

Python3.2也可以使用int类型直接获取其二进制表示:

分享python编程经历

ctypes 模块还有一个特别棒的特征,如果你将cpython作为解译器(通常大家都是这样),就可以使用ctypes.Structure结构化描述C语言,获取它们的二进制表示,就好像从C应用程序中转储的一样。

分享python编程经历

ctypes 模块通常是Python程序集和C语言库之间的桥梁,不需要编写任何Python包装器。有了ctypes模块,你可以使用任何C语言库和其输出函数:

分享python编程经历

上文中提到Structure 类型主要用于C语言库的交互,在函数调用过程中传递或者获取结构。

漏洞开发工具

很多CTF团体提供他们自己的的CTF解决方案框架,我发现来自Gallopsled 的pwntools框架特别有用,尤其是开发远程elf二进制时,它包含很多方便的函数,例如位移计算(通过cyclic模式)、格式化字符串开发(普通数据馈送以及产生的格式化字符串)、跳转组合(基于ropgadget解析elf二进制以及提供生成简单跳转组合调用的包装器)和不同传输通道的全部API(称作管道)。这些可以让读者们开发gdb编译后端,同时简单地改变一行代码就可以传输到目标服务。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-69346-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 宋文公鲍革
      宋文公鲍革

    • 卫绍王完颜永济
      卫绍王完颜永济

      中国在二十年內都还没这能力

      • 羽多野涉
        羽多野涉

        难道那个3年没变样的月饼很好吗

    热点图片
    拼命载入中...