首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

何在进程读取子(外部)进程标准输出和标准错误输出结果

最近接手一个小项目,要求使用谷歌aapt.exe获取apk软件包信息。依稀记得去年年中时,有个同事也问过我如何获取被调用进程输出结果,当时还研究了一番,只是没有做整理。...但是,实际情况并不是我们想那么简单。比如我文前提到问题:别人提供了一个Console控制台程序,我们将如何获取其执行输出结果呢?...它是我们启动子进程时,控制子进程启动方式参数。...我们之后将hWrite交给我们创建进程,让它去将信息写入管道。而我们父进程,则使用hRead去读取子进程写入管道内容。...设置标准输出和标准错误输出句柄 si.hStdError = hWrite; // 把创建进程标准错误输出重定向到管道输入 si.hStdOutput = hWrite

3.8K10

python 从subprocess运行进程实时获取输出

起因是这样,c++程序开发后 功能号和指令,校验需要人工去看对照二进制代码,量大还费力, 于是打算利用python 去调用 c++程序去校验指令, 首先要做就是用python 获取c++程序...printf() 或cout 输出; 环境linux python 3.8.x 以下代码实现,获取子程序输出 command='....linux shell指令,如果要用shell 指令ls 要将false 变成true, 通过指定stderr=subprocess.STDOUT,将子程序标准错误输出重定向到了标准输出,以使我们可以直接从标准输出同时获取标准输出和标准错误信息...p.poll() 返回子进程返回值,如果为None 表示 c++子进程还未结束. p.stdout.readline() 从 c++标准输出获取一行....参考文章1 pythonsubprocess.Popen()使用 参考文章 2 python 从subprocess运行进程实时获取输出

10.1K10
您找到你想要的搜索结果了吗?
是的
没有找到

Android 逆向】修改运行 Android 进程内存数据 ( Android 命令行获取要调试应用进程 PID | 进程注入调试进程内存 so 库 )

文章目录 一、Android 命令行获取要调试应用进程 PID 二、进程注入调试进程内存 so 库 一、Android 命令行获取要调试应用进程 PID ---- 前置博客 【Android...逆向】修改运行 Android 进程内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝 Android 平台可执行文件和动态库到 /data/system ) 先安装 Android...模拟器 , 雷电模拟器 3.75 版本 ; 在模拟器安装要调试应用后 , 直接运行 ; 执行 dumpsys activity top|grep pid 命令 , 查看当前正在运行应用进程号...PID 为 2328 ; 二、进程注入调试进程内存 so 库 ---- 在 【Android 逆向】修改运行 Android 进程内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝.../tool 2328 命令 , 即可完成 进程 注入操作 ; 如果命令行输出 hook_entry_addr = 0xa36044e0 不为空 , 是一个实际地址 , 说明调试动态库注入成功 ; 完整命令行输出

67010

Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 远程 目标进程 systemliblibc.so 动态库 mmap 函数地址 )

文章目录 一、获取 远程 目标进程 /system/lib/libc.so 动态库 mmap 函数地址 二、从 /proc/pid/maps 文件获取 指定 进程 /system/lib.../libc.so 动态库地址 三、获取 本地进程 /system/lib/libc.so 动态库 mmap 函数地址 四、获取 远程进程 /system/lib/libc.so 动态库...mmap 函数地址 一、获取 远程 目标进程 /system/lib/libc.so 动态库 mmap 函数地址 ---- 获取 远程 目标进程 /system/lib/libc.so...文件获取 指定 进程 /system/lib/libc.so 动态库地址 ---- 查看 /proc/2223/maps 进程对应内存信息 : 其中涉及到 /system/lib/libc.so...module_name 动态库地址 */ return (void*)addr; } 三、获取 本地进程 /system/lib/libc.so 动态库 mmap 函数地址 ---- 获取本地进程函数地址

79520

Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 linker dlopen 函数地址 并 通过 远程调用 执行该函数 )

文章目录 一、dlopen 函数简介 二、获取 目标进程 linker dlopen 函数地址 三、远程调用 目标进程 linker dlopen 函数 一、dlopen 函数简介 ----...; void* 返回值 : 动态库句柄 二、获取 目标进程 linker dlopen 函数地址 ---- 获取 某个动态库 / 可执行文件 某个方法地址 , 参考 【Android 逆向...】Android 进程注入工具开发 ( 注入代码分析 | 获取 远程 目标进程 /system/lib/libc.so 动态库 mmap 函数地址 ) 博客 ; 获取 远程 目标进程 动态库...函数地址流程 : ① 获取 本地进程 动态库 地址 ; ② 获取 远程进程 动态库 地址 ; ③ 计算 本地进程 与 远程进程 动态库 地址 偏移量 ; ④ 获取 本地进程 函数地址 ; ⑤ 根据...本地进程 函数地址 + 本地进程 与 远程进程 动态库 地址 偏移量 , 计算出 远程进程 动态库 函数地址 ; 三、远程调用 目标进程 linker dlopen 函数 ---- dlopen

1K10

Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程 libc.so 动态库 mmap 函数 三 | 等待远程函数执行完毕 | 寄存器获取返回值 )

文章目录 前言 一、等待远程进程 mmap 函数执行完毕 二、从寄存器获取进程返回值 三、博客资源 前言 前置博客 : 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 |...远程调用 目标进程 libc.so 动态库 mmap 函数 一 | mmap 函数简介 ) 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程 libc.so...动态库 mmap 函数 二 | 准备参数 | 远程调用 mmap 函数 ) 本博客进行收尾 , 远程调用 mmap 函数后 , 等待函数执行 , 获取该函数执行返回值 ; 一、等待远程进程 mmap...---- 等待远程进程 mmap 函数执行完毕返回后 , 先调用 ptrace_getregs 方法 , ptrace_getregs(target_pid, regs) 获取远程进程 寄存器信息...; 然后读取该寄存器数据 EAX 寄存器值 , 用于获取远程执行 dlopen 函数返回值 , 返回是 libbridge.so 动态库首地址 ; /* 读取寄存器返回值 */ long ptrace_retval

62720

Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取注入 libbridge.so 动态库 load 函数地址 并 通过 远程调用 执行该函数 )

文章目录 一、dlsym 函数简介 二、获取 目标进程 linker dlsym 函数地址 三、远程调用 目标进程 linker dlsym 函数 获取 注入 libbridge.so 动态库...* symbol : 函数名称 / 全局变量名称 ; void* 返回值 : 返回对应 函数 / 变量 地址 ; 二、获取 目标进程 linker dlsym 函数地址 ---- 获取 某个动态库.../ 可执行文件 某个方法地址 , 参考 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 远程 目标进程 /system/lib/libc.so 动态库...mmap 函数地址 ) 博客 ; 获取 远程 目标进程 动态库 函数地址流程 : ① 获取 本地进程 动态库 地址 ; ② 获取 远程进程 动态库 地址 ; ③ 计算 本地进程 与 远程进程...远程调用 目标进程 linker dlsym 函数 获取 注入 libbridge.so 动态库 load 函数地址 ---- 参考 【Android 逆向】Android 进程注入工具开发

77810

android 权限列表

允许应用程序访问额外位置提供命令 005 ACCESS_NETWORK_STATE 允许程序获取网络信息状态,当前网络连接是否有效 006 ACCESS_NOTIFICATION_POLICY...允许绑定到运营商应用程序服务系统进程将有这个权限 015 BIND_CHOOSER_TARGET_SERVICE 必须由ChooserTargetService要求,确保只有系统 可以绑定到它...android.permission.READ_USER_DICTIONARY从一个提供器获取数据,针对对应提供器,应用程序需要“读访问权限” 49.android.permission.READ_SYNC_STATS...允许一个应用程序捕获视频输出,不被第三方应用使用 108.android.permission.CAPTURE_SECURE_VIDEO_OUTPUT允许一个应用程序捕获视频输出。...允许一个应用程序添加语音邮件系统 134.android.permission.ACCOUNT_MANAGER允许程序获取账户验证信息,主要为GMail账户信息,只有系统级进程才能访问权限 135

1.7K30

Android 进程保活】oom_adj 值 ( 简介 | 查询进程 PID | 根据进程 PID 查询 oom_adj 值 )

; 在内存不足 , 要杀进程 , 回收内存时 , 会根据该 oom_adj 值决定是否回收该进程 ; oom_adj 值越大 , 对应进程优先级越低 ; 二、查询进程号 PID ---- 获取进程号...: 执行如下命令 , 可以获取 Android 手机进程号 ; adb shell ps PS 每行输出含义 : USER : 进程所属用户 , ROOT 是权限最高用户 , 其它都是各个应用对应用户名称...; WCHAN : 休眠进程对应在内核地址 ; NAME : 进程名称 ; 最后看到了熟悉企鹅进程保活操作 , 有 3 个进程 ; 在 Android Studio 界面也可以查看进程...ID , 在 Logcat 面板 , 进程 , 可以看到 kim.hsl.app2 进程进程 PID 是 11694 ; 在 PS 对应该 PID 为 11694 进程 ; u0_a356..., 执行如下命令 , 即可查询进程号对应进程 oom_adj 值 ; 首先进入 Android 设备 adb shell 命令行 , adb shell 然后获取 root 权限 , su 最后查询进程号对应进程

5.1K30

安卓很受伤:Black Hat 2015黑客大会上将公布6个移动安全威胁

研究人员在安卓当前指纹扫描框架中发现严重了问题,他们将展示如何通过指纹认证劫持手机支付授权,以及展示一个能获取指纹图像指纹传感器。 华为Mate 7跪了 ? 黑客能否攻破所谓“可信”环境?...申迪将在大会上谈谈关于TrustZone开发、如何在不可靠可信执行环境运行shellcode以及如何Root设备和禁用最新Android SE。 Binder通讯机制权限提升 ?...Binder进程间通信机制一般用于所有不同级别的特权进程之间,然而在通过Binder之前向系统服务输入参数并不能通过验证。...奇虎360安全研究员龚广(音译)将在大会上给出首个挖掘这种漏洞Fuzzing工具“通过Binder通讯机制注入Android系统服务来升级权限”,除此之外他还会详细说明如何利用这种漏洞获取安卓系统服务器许可...CheckPoint技术领导者Avi Bashan和移动威胁防御区域经理Ohad Bobrov将演讲“攻破大量androidcertifigate”,他们将展示如何入侵被运营商和原始设备制造商认证应用程序以获得设备控制权

1.4K90

Android 手机到底需要多少RAM

Android 内存管理 在Android上启动新应用程序时,Linux内核会创建一个新进程进程是具有自己虚拟地址空间(映射到物理内存)执行单元。...Linux内核管理该进程所需资源,包括在CPU上运行时间,数据输入和输出(通过网络或通过文件系统)以及物理内存(RAM)。 当资源丰富时,内核工作很容易。...当您没有更多内存时,等待更长时间可能不会导致释放更多RAM。这时,内核需要主动获取一些RAM。 Linux和Android以两种方式处理此问题。首先,使用zRAM进行交换。...Android压缩内存并将其写回到内存,如果我们假设压缩率为50%,则128KBRAM可以减少到64KB,从而释放64KB。这等效于将页面换出到磁盘。...:YouTube/WhatsApp/Crossy Road/Candy Crush “媒体密集型”应用程序,这些应用程序加载大量图像,因此使用更多内存.:Google相册和Instagram之类标题

1.7K30

安卓Camera2 YUV_420_888

可以预见,Image将会用来统一Android内部混乱中间图片数据(这里中间图片数据指各式YUV格式数据,在处理过程中产生和销毁)管理。...本文主要介绍YUV_420_888格式图片数据如何在Image存储和管理。 从YUV420谈起 YUV即通过Y、U和V三个分量表示颜色空间,其中Y表示亮度,U和V表示色度。...不同于RGB每个像素点都有独立R、G和B三个颜色分量值,YUV根据U和V采样数目的不同,分为YUV444、YUV422和YUV420等,而YUV420表示就是每个像素点有一个独立亮度表示,即Y...plane[1] 是U数据,rowStride 是1920, rowStride是2 ,说明每行1920个像素每两个连续U之间隔了一个像素,buffer索引为: 0 , 2 , 4, 6, 8 …...看8 x 4NV12存储结构(NV21只是UV交错顺序相反): 结论 plane[0] + plane[1] 可得NV12 plane[0] + plane[2] 可得NV21 参考3获取I420

2.4K50

基于Android服务器端程序实例

其实在Android也有很多这些类似的 APP,为了方便和 PC 之间共享 APP 里应用数据,也会有 FTP 或者WebDAV服务在 APP 里运行。...但是 Android 可以选择将数据存放在外部沙盒中,也就是 APP 外部数据目录,可以通过Context.getExternalFilesDir() 获取到该路径,甚至还有其他歪门邪道 APP 在外置存储里随便建立文件夹...这里举个栗子说说如何在 Android 上运行 httpd for arm,可以先将编译好 httpd 放入 raw 文件夹,在 MainActivity 启动时判断是否在指定位置,没有则释放。...中有一个 Runtime 类,这个类主要是用来让 Android 应用程序可以与它所在运行环境进行交互,可以直接通过调用 Runtime.getRuntime() 静态方法来得到这个类实例,再调用...Android 上是没有控制台窗口,那么如何捕捉控制台输出呢,简单,重定向输出到输入流即可。

1.2K30

Linux服务器检查性能瓶颈

在Linux系统,这些数据表示等待CPU资源进程和阻塞在不可中断IO进程进程状态为D)数量。这些数据可以让我们对系统资源使用有一个宏观了解。...上面例子输出,可以看见最近1分钟平均负载非常高,且远高于最近15分钟负载,因此我们需要继续排查当前系统中有什么进程消耗了大量资源。...可以通过下文将会介绍vmstat、mpstat等命令进一步排查。 系统核心指标 vmstat 1 结果 vmstat 命令,每行输出一些系统核心指标,这些指标可以让我们更详细了解系统状态。...这个数据比平均负载更加能够体现CPU负载情况,数据不包含等待IO进程。如果这个数值大于机器CPU核数,那么机器CPU资源已经饱和。...示例输出,eth0网卡设备,吞吐率大概在22 Mbytes/s,既176 Mbits/sec,没有达到1Gbit/sec硬件上限。

4.1K20

Android ANR问题解析(一)

InputDispatcher运行在system_server进程一个子线程,每当接收到一个新输入事件,InputDispatcher就会检测前一个已经发给应用程序输入时间是否已经处理完毕,如果超时...如果步骤3zygote迟迟创建不出应用B进程,那么焦点应用会一直保持在A上,超时后就会报出A发生ANR;此外Android4.4上为了适应多窗口逻辑需要,WMS和InputDispatcher维护焦点窗口和焦点应用可以不同步...由于系统性能原因,CPU占用率高/平均等待队列长/内存碎片化/页错误高/GC慢/用户空间冻结/进程陷入不可打断睡眠,会造成整体运行慢使ANR频繁发生。...与前两类ANR不同,系统对这类ANR不会显示对话框提示,仅在slog输出异常信息。...CPU驱动错误导致四核手机只有一个核运行、Kernel将用户空间冻结导致任何程序都不能执行、I/O吞吐量低下导致应用程序长时间等待I/O,HAL层实时进程长时间占用CPU导致调度队列过长、AMS原生Bug

2.3K10

【愚公系列】软考高级-架构设计师 014-操作系统概述

任务管理: 多任务处理:同时支持多个任务执行,多窗口、多进程、多线程等。 进程隔离:确保一个进程不会影响到其他进程运行。 进程通信(IPC):提供进程通信机制,管道、信号、套接字等。...Unix/Linux:强大多用户、多任务操作系统,广泛应用于服务器、桌面和网络设备Android, iOS:分别为谷歌和苹果移动操作系统,用于智能手机和平板电脑。...操作系统设计和实现是计算机科学一个重要领域,涉及到底层硬件到高级应用程序广泛知识。...共享性可以进一步细分为两种形式: 互斥共享:资源一次只能由一个进程使用,打印机。 同时访问:资源可以被多个进程同时访问,但需要操作系统管理以避免冲突,文件系统。...3.5 作业管理 作业管理主要出现在批处理系统,负责作业接收、调度、执行以及完成后输出管理。作业是用户提交给系统一组作业或命令。 作业调度:决定作业执行顺序。

10210

Android权限机制,你真的了解吗?

一、Android权限机制 Android是目前最流行智能手机软件平台之一,在智能移动终端如火荼发展同时,其安全态势也日益严峻。...2.3 进程权限表现 Android是一个多进程系统,在这个系统应用程序会在自己进程运行,系统和应用之间安全性是通过Linux进程级别来强制实现,会给应用程序分配userID和GroupID...以上介绍了进程权限表现,实际工作,我们可能不需要关注这些。...(这里可能比较绕,举个例子:假设你APP需要联系人和拍照权限,在请求权限时用户只授予了联系人权限,那么当前程序可以正常运行并获取联系人信息,但是无法进行拍照) 注:本篇文章讲解如何在API level...如果应用程序请求获取一个权限组其他权限(在manifest文件声明权限),系统会自动授予该权限。

5.9K100
领券