51Testing软件测试论坛

标题: python on win多进程BUG(曲线救国) [打印本页]

作者: 天天酷派哦    时间: 2019-2-27 14:50
标题: python on win多进程BUG(曲线救国)

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:


[attach]122340[/attach]


而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软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2