从WINDOWS VISITA开始以后,windows已经开始支持随机基址的关系,也就是说以前我们的进程基址都是从0x40000开始的,如果一个变量在我们第一次运行的时候地址为0x50000,那么以后也都会在这个位置 而VS2008后开始提供随机基址的功能,在WINDOWS VISITA后的版本也都支持这个功能,这样进程的基址将不会再固定从一个地方开始,变量的地址也会随着基址的不同而不同,加大了我们对一个进程修改的难度,我们每次修改一个变量不能再将变量写死,而是要根据基址+数据偏移量来算出数据的…
有使用过外挂的朋友应该知道,我们在玩游戏的时候,有很多辅助功能给你使用,比如吃药,使用物品等功能,这个时候我们就是使用注入代码的技术,简单的来将就是我们让另外一个进程去执行我们想让它执行的代码,这中间的关键函数是CreateRemoteThread HANDLE WINAPI CreateRemoteThread( _In_ HANDLE hProcess, _In_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ SIZE_T dwStackSiz…
在前面的注入代码的章节中,我们利用了VirtualAllocEx来在对方的进程开辟了一块内存,并且将代码复制进对方进程的内存里面,从而执行那段内存的代码,但是这里有一个问题,就是代码不是执行在我们进程内的,所以我们无法像在本进程编程那样直接利用返回值或者传入指针来获取计算结果,这个时候我们可能需要到很多通讯手段,但是这样将会让我们的注入代码变得非常复杂,所以我自己想了一个方法,就是利用VirtualAllocEx开辟的内存区域来进行通讯 整体的步骤是这样的: 1.在对方的内存开始一块内存, 2.…
pidof pidof可以查找指定名称的进程的pid,将结果送到标准输出.pidof有两种返回值:0,找到至少一个进程:1,没有找到进程.pidof实际上与killall5相同:程序根据调用它的名称进行操作. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora.   1.语法        pidof [选项]  name   2.选项列表 选项 说明 -s 一次只响应一个进程号 -c 只显示运行在root目录下的进程,这个选项只对ro…
1.通过ps或者top命令查看运行的进程的pid ps -aux|grep php-fpm #或者 top 2. 获取进程的pid后,然后使用命令ls -l /proc/${pid},这个命令可以列出该进程的启动位置. ll /proc/ total dr-xr-xr-x www www Jul : attr -rw-r--r-- www www Jul : autogroup -r-------- www www Jul : auxv -r--r--r-- www www Jul : cgro…
int main(void) { HANDLE hFile = CreateFile("D:\\Shipyard.exe", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); HANDLE hFileMapping = CreateFileMapping(hFile,NULL,FILE_READ_ONLY,,,NULL); LPBYTE lpBaseAddress = (L…
视频地址:[黑客基础]Windows PowerShell 脚本学习 2019.12.05 学习笔记 1.$PSVersionTable :查看PowerShell的版本信息. 2.PowerShell 界面: 开始界面搜索 "PowerShell" ,点击 "PowerShell.exe" 或者 "PowerShell ISE". cmd 命令界面输入 "PowerShell". 3.PowerShell 快捷键 Alt +…
[源码下载] 背水一战 Windows 10 (76) - 控件(控件基类): Control - 基础知识, 焦点相关, 运行时获取 ControlTemplate 和 DataTemplate 中的元素 作者:webabcd 介绍背水一战 Windows 10 之 控件(控件基类 - Control) 基础知识 焦点相关 运行时获取 ControlTemplate 和 DataTemplate 中的元素 示例1.演示 Control 的基础知识Controls/BaseControl/Con…
这里windows和Linxu系列的PID 管理方式有所不同,windows中进程的PID和句柄没有本质区别,根据句柄索引对象和根据PID或者TID查找进程或者线程的步骤也是一样的.   句柄是针对进程而言,也就是句柄一定所属于某个进程,为某个进程私有的资源.句柄的分配来自于进程私有的句柄表.而进程PID和线程TID和句柄的分配原理是一样的,但是来源就不同了.进程PID来源于系统中一张全局的句柄表PSpcidtable.从级别上来说Pspcidtable和进程对象eprcess中的objectt…
pgrep命令以名称为依据从运行进程队列中查找进程,并显示查找到的进程id.每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认的分割字符串是一个新行.对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合. 语法 pgrep(选项)(参数) 选项 -o:仅显示找到的最小(起始)进程号: -n:仅显示找到的最大(结束)进程号: -l:显示进程名称: -P:指定父进程号: -g:指定进程组: -t:指定开启进程的终端: -u:指定进程的有效用户ID. 参数 进程…
Windows内核基础知识-8-监听进程.线程和模块 Windows内核有一种强大的机制,可以在重大事件发送时得到通知,比如这里的进程.线程和模块加载通知. 本次采用链表+自动快速互斥体来实现内核的主要架构. 进程通知 只要在内核里面注册了进程通知那么创建进程就会反馈给内核里面. //注册/销毁进程通知函数NTSTATUS PsSetCreateProcessNotifyRoutineEx(  PCREATE_PROCESS_NOTIFY_ROUTINE_EX NotifyRoutine,//回…
Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的.所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Windows Service写很深入. 本文介绍了如何用C#创建.安装.启动.监控.卸载简单的Windows Service 的内容步骤和注意事项. 一.创建一个Windows Service 1)创建Windows Service项目 2)对Service重命名 将Service1重命名为你服务名称,这里我…
windows powershell基础 目录: 1.管道和重定向 2.命令执行 3.变量 4.数组和哈希表 #@()创建数组,使用","把每个值分隔开,@{}创建哈希表,用";"把每个值分隔开 5.常用命令 get-help  查看帮助 get-command 查询命令 get-member  查看对象的成员信息 get-verb  获取所有动词 get-content 或者type  查看内容 $psversiontable   查看powershell版本 l…
Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的.所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Windows Service写很深入. 本文介绍了如何用C#创建.安装.启动.监控.卸载简单的Windows Service 的内容步骤和注意事项. 一.创建一个Windows Service 1)创建Windows Service项目 2)对Service重命名 将Service1重命名为你服务名称,这里我…
观察发现4核CPU,只有第1个核心(CPU#0)非常忙,其他都处于idle状态. 不了解Linux是如何调度的,但目前显然有优化的余地.除了处理正常任务,CPU#0还需要处理每秒网卡中断.因此,若能将CPU#0分担的任务摊派到其他CPU核心上,可以预见,系统的处理能力将有更大的提升. 两个名词 SMP (Symmetrical Multi-Processing):指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构.SMP意为对称多处理系统,内有许多紧耦合多处理器…
linux 查找进程id端口占用和杀死进程 ps 命令用于查看当前正在运行的进程 辅助上grep 用于搜索匹配ps -ef | grep java ps ax : 显示当前系统进程的列表 ps aux : 显示当前系统进程详细列表以及进程用户 -e 显示所有进程,环境变量 此参数的效果和指定"A"参数相同.a 显示终端上地所有进程,包括其他用户地进程-A 显示所有程序.c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示. e 列出程序时,显示每个程序所使用的…
windows安全基础 安全主体 security principal 是可以进行身份验证的实体. 哪个安全主体在要求访问?这个维度可以是用户,计算机和进程.一旦确认以后,系统就会发放SID. 例子:你正在运行服务,该进程需要访问计算机上的文件.操作系统需要知道谁要求访问这些文件.这个时候需要有适用于它的安全主体. 您将在windows中找到任何对象或实体都有一个安全主体(security principal) 安全标识符 security identifier(SID) 类似于系列号.wind…
改变进程基址,获取进程基址 #include <Windows.h> #include <iostream> #include <strsafe.h> #include <STDLIB.H> using namespace std; #pragma comment(linker, "/BASE:0x400000") // 改变进程加载机地址 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE…
前两日碰到了用异常处理来做加密的re题目 所以系统学习一下windows内核相关 windows内核基础 权限级别 内核层:R0 零环 核心态工作区域 大多数驱动程序 应用层:R3 用户态工作区域 只能使用win32 api与系统交互 R0与R3的通信 调用流程 当用户调用一个有关I/O的API时 该API封装在一个用户层的DLL文件中(如kernel32.dll或user32.dll) 此dll函数的更底层函数被包含在ntdll.dll中 即用户调用的系统API在ntdll.dll均有对应 (…
目标:在Windows环境下,用netstat命令查看某个端口号是否占用,为哪个进程所占用. (1)查看该端口被那个PID所占用;方法一:有针对性的查看端口,在命令行下,使用命令netstat –ano|findstr “<端口号> 在output中最后一列为PID号 (2)在命令行下,通过tasklist|findstr “<PID号>”命令查找进程名称 (3)用任务管理器查看并杀死进程…
今晚上开始看<Objective-C 程序设计(第4版)>这本书(OSChina 正在做此书的书评活动,详情请看这里),到现在为止看到第 7 章,于是想动手试试写两简单的程序编译跑跑看. 不习惯 Mac,在 Windows 下装了个 GNUstep 也可以玩. 非常简单的几步,你也来试试吧? 1. 下载并安装 GNUstep 下载地址:http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/ 有三个文件是必须安装的,分别是: gnuste…
在启动某个程序之前,如果需要先检查改程序是否已经运行,可以查找进程里有没有这个进程,再根据查找进程后的结果进行相应的判断操作. 产找进程的范围是任务管理器中的进程列表.如果进程被隐藏了,结果……(我没有试过) 查找进程.启用进程.关闭进程 using ……using ……using System.Diagnostics; //启用进程void process(){ Process p;//实例化一个Process对象 p=Process.Start(@"E:\1.txt");//要开启…
在windows有时使用任务管理器杀进程,一直杀不掉: 这个时候,可以使用命令行: 先使用tasklist 命令查看当前系统中的进程列表,然后针对你要杀的进程使用taskkill命令 如要杀nginx.exe进程,命令如下:taskkill /im nginx.exe /f NOTE: /f在这里意为强制结束进程 也可以使用pid杀: taskkill /pid {pid} 您可以运行taskkill /?来获取更多更多有关taskkill的信息.…
想必大家在部署环境启动服务的时候,会遇到服务起不起来的问题,看日志,说是端口被占用了. 有的时候,我们不想改端口,那么,就需要去查看到底是哪个应用把这个端口给占用了,然后干掉它即可. 下面分别列举linux和windows下根据端口查找服务的进程的小技巧. linux下查看占用端口的进程 (1)查找哪个进程占用了8091端口netstat -ntpl | grep 8091,其中: n表示拒绝显示别名,能显示数字的全部转化成数字 t表示只显示tcp p表示显示建立相关链接的程序名 l表示仅列出有…
python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程 并行与并发 同步与异步 阻塞与非阻塞 CPU密集型与IO密集型 线程与进程 进程 前言 进程的出现是为了更好的利用CPU资源使到并发成为可能. 假设有两个任务A和B,当A遇到IO操作,CPU默默的等待任务A读取完操作再去执行任务B,这样无疑是对CPU资源的极大的浪费.聪明的老大们就在想若在任务A读取数据时,让任务B执行,当任务A读取完数据后,再切换到任务A执行.注意关键字切换…
windows 下 php-cgi 进程处理一定数量的访问后,就会自动关闭,由于没办法直接让 php-cgi 进程支持更多的访问数量,所以只能启动多个进程来满足需求. xxfpm 是一个可执行程序,它能同时启动多个 php-cgi 进程,并且在任何一个进程关闭时,都会重新启动一个新的进程,始终保持一定数量的进程,这样,就无需手动创建,省去了很多麻烦. xxfpm 需要 pthreadGC2.dll 的支持,如果没有,会报错.将 pthreadGC2.dll 放在 xxfpm 的 bin 目录下,…
转自:http://blog.csdn.net/ithzhang/article/details/8448655 Windows socket 基础 Windows socket是一套在Windows操作系统下的网络编程接口.它不是一种网络协议,而是一个开放的.支持多个协议的Windows下的网络编程接口 . Windows socket是以Unix socket为基础,因此Windows socket中的许多函数名与Unix都是一样的.除此之外它还允许开发人员充分利用Windows的消息驱动机…
方法一: 禁止多个进程运行 using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace 开启新的进程 { static class Program { /// <summary> /// 应用程序的主入口点. /// </summary> [STAThread] static void Main() { bool flag; Syst…
Appium(JAVA)Windows 7系统搭建及示例运行 分类: Appium 2014-11-14 17:44 4323人阅读 评论(2) 收藏 举报 1.搭建Android环境 http://blog.csdn.net/jlminghui/article/details/39582895 注:需要设置系统变量“ANDROID_HOME”. 2.安装Node.js http://www.nodejs.org/download/ 下载相关操作系统的版本 安装过程,一路“Next”. 3.安装…
LoadRunner中的进程与线程    1.进程与线程的区别: 进程和线程的区别是什么?进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性.进程和线程的区别在于:简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高. 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率. 线程在执行过程中与进程还是有区别的.每个独立的线程有一个程序运行的入口.顺序执行序列和…