驱动开发:取进程模块的函数地址

在笔者上一篇文章`《驱动开发:内核取应用层模块基地址》`中简单为大家介绍了如何通过遍历`PLIST_ENTRY32`链表的方式获取到`32位`应用程序中特定模块的基地址,由于是入门系列所以并没有封装实现太过于通用的获取函数,本章将继续延申这个话题,并依次实现通用版`GetUserModuleBaseAddress()`取远程进程中指定模块的基址和`GetModuleExportAddress()`

7.2 通过API创建新进程

创建新的进程是`Windows`程序开发的重要部分,它可以用于实现许多功能,例如进程间通信、并行处理等。其中,常用的三种创建进程的方式分别是`WinExec()`、`ShellExecute()`和`CreateProcessA()`,这三种创建进程的方式各有特点。如果需要创建简单进程或从其他程序启动新进程,可以使用`WinExec()`或`ShellExecute()`函数。如果需要对新进程进行

7.3 通过API枚举进程

首先实现枚举当前系统中所有进程信息,枚举该进程的核心点在于使用`CreateToolhelp32Snapshot()`函数,该函数用于创建系统进程和线程快照,它可以捕获当前系统中进程和线程相关的信息(如PID、线程数量、线程ID等),在对这些信息进行处理后,可以获得很多有用的数据,如当前系统中所有正在执行的进程的信息列表,以及每个进程各自的详细信息(如CPU、内存占用量等)。

7.4 通过API枚举进程权限

GetTokenInformation 用于检索进程或线程的令牌(Token)信息。Token是一个数据结构,其包含有关进程或线程的安全上下文,代表当前用户或服务的安全标识符和权限信息。GetTokenInformation函数也可以用来获取这些安全信息,通常用于在运行时检查某个进程或线程的权限或安全信息。

文盘Rust -- 把程序作为守护进程启动

当我们写完一个服务端程序,需要上线部署的时候,或多或少都会和操作系统的守护进程打交道,毕竟谁也不希望shell关闭既停服。今天我们就来聊聊这个事儿。 最早大家部署应用的通常操作是 “nohup xxxx &”,别说像weblogic 或者其他java 容器有启动脚本,里面其实也差不多;很喜欢 ngi

深入理解操作系统中进程与线程的区别及切换机制(下)

本文首先介绍了进程的控制结构,即进程控制块(PCB),它是表示进程的数据结构,包含了进程的相关信息和资源。PCB之间通过链表连接,形成就绪队列和阻塞队列,用于进程调度和资源管理。接着,文章详细探讨了进程的切换过程。进程切换是为了保证公平分配CPU时间片,涉及保存和恢复进程的执行上下文、更新进程状态和调度算法选择等步骤。文中还提到了进程上下文切换的场景,如时间片用完、内存不足、高优先级进程需求等。最

10.3 调试事件转存进程内存

我们继续延申调试事件的话题,实现进程转存功能,进程转储功能是指通过调试API使获得了目标进程控制权的进程,将目标进程的内存中的数据完整地转存到本地磁盘上,对于加壳软件,通常会通过加密、压缩等手段来保护其代码和数据,使其不易被分析。在这种情况下,通过进程转储功能,可以将加壳程序的内存镜像完整地保存到本...

WinDBG详解进程初始化dll是如何加载的

一:背景 1.讲故事 有朋友咨询个问题,他每次在调试 WinDbg 的时候,进程初始化断点之前都会有一些 dll 加载到进程中,比如下面这样: Microsoft (R) Windows Debugger Version 10.0.25200.1003 X86 Copyright (c) Micro

除了运行、休眠…进程居然还有僵尸、孤儿状态

摘要:本章我们将认识几种进程状态——运行状态、休眠状态、暂停状态、退出状态等。还要介绍两种具有惨烈身世的僵尸进程与孤儿进程~ 本文分享自华为云社区《僵尸进程?孤儿进程?为什么他有如此惨烈的身世...》,作者: 花想云 。 认识进程状态 Linux中进程状态一般有: R(运行状态):并不意外着真正的在

网络协议的重要性与应用:理解进程间通信和网络分层结构(上)

学习网络协议的关键是了解其分层结构。在计算机网络中,我们使用的是OSI标准模型和TCP/IP网络模型。这些模型将网络通信划分为多个层级,每个层级都有不同的功能和作用。在本章节中,我们主要讲解了TCP/IP网络模型的前三层:应用层、传输层和网络层。后面的数据链路层和物理层将在下一篇文章中进行详细讲解

网络协议的重要性与应用:理解进程间通信和网络分层结构(下)

这篇文章概括了数据链路层和物理层在网络通信中的作用和功能。数据链路层负责为网络层提供链路级别的传输服务,通过MAC地址标识设备,并在链路上进行数据传输。物理层将数据包转换为电信号,在物理媒介中传输。不同的物理媒介包括双绞铜线、同轴电缆和光纤,它们都被用于实现高效的数据传输和通信。

【逆向专题】【危!!!刑】(一)使用c#+Win32Api实现进程注入到wechat

引言 自从上篇使用Flaui实现微信自动化之后,这段时间便一直在瞎研究微信这方面,目前破解了Window微信的本地的Sqlite数据库,使用Openssl,以及Win32Api来获取解密密钥,今天作为第一张,先简单写一下,获取微信的一些静态数据,以及将自己写的c语言dll通过Api注入到微信进程里面

深入理解Python多进程:从基础到实战

title: 深入理解Python多进程:从基础到实战 date: 2024/4/29 20:49:41 updated: 2024/4/29 20:49:41 categories: 后端开发 tags: 并发编程 多进程管理 错误处理 资源调度 性能优化 异步编程 Python并发库 引言 在P

< Python全景系列-5 > 解锁Python并发编程:多线程和多进程的神秘面纱揭晓

深入探讨Python中的并发编程,特别关注多线程和多进程的应用。我们将先从基本概念开始,然后通过详细举例探讨每一种机制,最后分享一些实战经验以及一种优雅的编程技巧。

[转帖]通过Shell脚本自动监控JAVA进程中线程cpu使用率

https://gitee.com/jialy/auto-monitor-java-process/tree/master 本文主要介绍在 show-busy-java-threads.sh 脚本的功能基础上,通过 process-cpu-monitor.sh 脚本实现Linux平台上Java进程或

[转帖]CPU性能监控之三-----非Numa架构的进程绑定

CPU性能监控之三 非Numa架构的进程绑定 https://blog.51cto.com/hl914/1557740 上一篇重点在Numa架构下如果绑定,这篇就说说在非numa架构下常用的绑定吧。 使用taskset这个命令进行绑定,这个命令无法对内存进行限制,所以,如果有特殊需要,也可以使用Nu

[转帖]利用BCC Tools追踪指定PID进程的方法

http://t.zoukankan.com/Emuaer-p-EmuaBCCTools3.html 想法的产生 通过熟悉许多BCC tools后,我们可以通过一些工具的组合,来实现一些定向的进程追踪 execsnoop跟踪新进程创建,跟踪exec函数。 bashreadline打印系统中所有bas

[转帖]linux查看java堆栈信息_linux进程堆栈大小

https://www.cnblogs.com/cloudHui/p/17076184.html 1、查看JAVA进程JVM参数 jinfo -flags pid(进程号)-XX:CICompilerCount=2 最大的并行编译数-XX:InitialHeapSize=16777216 JVM 的

[转帖]系统中出现大量不可中断进程和僵尸进程

https://www.jianshu.com/p/f76c54cd00fe 注:本文只是为了辅助自己分析而记录首先我们来分析一下top命令: [root@localhost ~]# top top - 19:24:45 up 1 day, 6:05, 3 users, load average:

[转帖]03-rsync传输模式(本地传输、远程方式传输、守护进程模式传输)

https://developer.aliyun.com/article/885801?spm=a2c6h.24874632.expert-profile.282.7c46cfe9h5DxWK 简介: 1.Rsync传输模式 rsync大致使用三种主要的数据传输方式 本地方式 远程方式 守护进程 1