180209 逆向-Frida-python on win多进程BUG(曲线救国)
1625-5 王子昂 总结《2018年2月9日》 【连续第497天总结】
A. Frida-python on windows问题排查
B.
昨天脚本跑了二十遍以后就会内存读取错误而崩溃
今天继续研究了一下这个问题
首先精简脚本发现
import frida
for i in range(20):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
180209 逆向-Frida-python on win多进程BUG(曲线救国)相关推荐
- App逆向 Frida - 夜神模拟器安装配置 基本使用
App逆向 Frida - 夜神模拟器安装配置 基本使用 文章目录 App逆向 Frida - 夜神模拟器安装配置 基本使用 前言 一.Frida简单介绍? 1.Frida是什么 2.Frida原理( ...
- 1. Android逆向-Frida环境搭建
文章目录 Frida环境搭建 PC上安装Frida 测试设备的Frida Python环境 Frida时当下比较流程的逆向工具,其本身是开源的.在Github上可以找到项目 frida/frida: ...
- python廖雪峰_【Python】python中实现多进程与多线程
进程与线程 进程(process)就是任务,是计算机系统进行资源分配和调度的基本单位[1].比如,打开一个word文件就是启动了一个word进程. 线程(thread)是进程内的子任务.比如word中 ...
- python多线程和多进程的使用_python多线程与多进程
python多线程与多进程 python多线程 python中提供两个标准库thread和threading用于对线程的支持,python3中已放弃对前者的支持,后者是一种更高层次封装的线程库,接下来 ...
- python 多进程_说说Python多线程与多进程的区别?
公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...
- python编写程序的一般步骤-Python编写win程序的操作流程
今天给大家讲的是Python怎样编写win程序的方法,对Python编写win程序的操作流程感兴趣的同学们就一起学习下具体方法吧! Python编写win程序的操作流程 1.在app.py同一目录下建 ...
- async python两个_【Python】python中实现多进程与多线程
进程与线程 进程(process)就是任务,是计算机系统进行资源分配和调度的基本单位[1].比如,打开一个word文件就是启动了一个word进程. 线程(thread)是进程内的子任务.比如word中 ...
- python多进程关闭socket_用Python制作一个多进程UDP服务器,一个进程监听一个p
我想用Python制作一个多进程UDP服务器,从一个类中为每个进程监听一个端口: processListener.py:import multiprocessing import socket cla ...
- python服务端多进程压测工具
本文描述一个python实现的多进程压测工具,这个压测工具的特点如下: 多进程 在大多数情况下,压测一般适用于IO密集型场景(如访问接口并等待返回),在这种场景下多线程多进程的区分并不明显(详情请参见 ...
最新文章
- mybatis的注解开发之三种动态sql
- php获取分辨率赋值,php如何获取客户端分辨率?实例教程
- 编写五子棋的完整python代码_python实现五子棋游戏(pygame版)
- 交换机配置——VTP管理交换机的VLAN配置
- python3(一)数字Number
- python简单图画程序_用Python的Turtple画图形
- 自制简易前端MVC框架
- Atitit.Gui控件and面板----数据库区-mssql 2008 权限 配置 报表查看成员
- .NET 工具生成引擎概述
- 拼团小程序源码_拼团小程序制作干货教程
- activiti启动流程实例
- 引用数据类型的一些知识
- 获取Access数据库字段的所有属性(转)
- matlab 不确定度计算器,A类贝塞尔不确定度计算器
- CRON 定时任务 在线解析
- 贴片电阻有哪几类封装尺寸?
- SUCTF2019-hardCPP WP
- AI技术内参021-SIGIR2018论文精读:如何对搜索页面上的点击行为进行序列建模?
- ultraos win10启动盘_ultraiso制作u盘启动盘教程图文详解
- elastic stack 基础组件beats详解