51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2572|回复: 0
打印 上一主题 下一主题

[原创] python on win多进程BUG(曲线救国)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-27 14:50:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

Frida-python on windows问题排查
昨天脚本跑了二十遍以后就会内存读取错误而崩溃

今天继续研究了一下这个问题


首先精简脚本发现

  1. import frida
  2. for i in range(20):
  3.     frida.attach('notepad.exe')
复制代码

也会报错,说明跟注入的js脚本无关,是frida-python的问题

找了一下发现frida-python竟然没有文档,开发者似乎试图让使用者自行阅读源码来理解使用方法……真任性OTZ

感觉问题出在server上,对attach的session数量有限制而未及时释放和重用内存导致溢出

通过ipython发现frida模块下有shutdown方法,运行以后就报Device Manager closed异常

观察进程管理发现attach以后会自己起一个windows server:



而shutdown和kill这个server都会使得无法再attach

那么不能解决这个server内部的问题就只能每10-20次尝试以后就重启一个server来attach了

找了一下也没发现启动server的方法,似乎是import时初始化来的


于是最后只想到一个曲线救国的方法:多进程调用脚本

py(a)->py(b)->frida

py(a)负责主流程控制,发送和接收数据,开启多个进程/逐次启动py(b)

py(b)来import frida,并进行注入等工作


这样每个py(b)都会起一个server,从而避免在一个server中进行大量的尝试

虽然这样毫无疑问会显著降低效率,但是无法解决server溢出的问题也没有办法了……

这个起server的指令是在闭源的pyd中进行,没有办法改参数啥的怕是没救了

C. 明日计划

python web


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-15 00:49 , Processed in 0.067344 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表