需要本文代码请直接跳到文章最底部下载
注入进程的方法有很多,本文主要介绍通过远程线程来注入进程的方法;
我们知道,每个进程都有4GB的地址空间,windows可用的大小大概为1.5GB左右,远程线程注入的方法主要是,打开一个线程以后,将要注入的动态库的地址写入这个地址空间,然后调用开启远程线程的函数,来执行LoadLibraryA或者LoadLibraryW(其实不存在LoadLibrar...
分类:
编程语言 时间:
2014-07-19 23:19:51
阅读次数:
449
终于搞懂用户态内核态以及中断、信号的上下文切换关系了,处于内核态的时候用户态的上下文保存在内核栈中,此时如果发生中断或者切换,是不会区分进程处于用户态还是内核态的,直接切之,软中断导致的是内核态和用户态的转化,也即是用户上下文到内核上下文的转化,而中断导致的是用户态或者内核态上下文到中断上下文的转化...
分类:
其他好文 时间:
2014-07-19 23:10:04
阅读次数:
290
原贴:http://www.oschina.net/question/126398_61956?sort=time性能相比,在较少的访问下,mysql优于postgresql,但较高的访问下,postgresql却远远高于mysql。mysql用的是多线程:多线程无需跨进程边界, 程序逻辑和控制方式...
分类:
数据库 时间:
2014-07-19 22:35:26
阅读次数:
359
kill [信号代码] 进程ID以优雅的方式结束进程# kill -l PID-l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死父进程。# kill -HUP P...
分类:
其他好文 时间:
2014-07-19 22:26:28
阅读次数:
322
解决问题 如何让一个软件在一台机器上只能运行一个实例呢?这个问题用专业术语就是进程互斥。这个问题可以通过CreateMutex来解决。 进程互斥的核心思想:进程在启动时首先检查是否存在此进程实例,如果没有则创建进程并设置进程实例已存在的标记。 CreateMutex用于创建一个互斥体; Op...
管道是UNIX系统IPC最古老形式,并且所有UNIX系统都提供此种通信机制。管道由下面两种局限性:1)历史上,它们是半双工的(即数据只能在一个方向上流动)2)它们只能在具有公共祖先的进程之间使用。通常,一个管道由一个进程创建,然后该进程调用fork,此后父、子进程之间就可应用该管道管道由调用pipe...
分类:
其他好文 时间:
2014-07-19 22:19:57
阅读次数:
189
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是...
分类:
编程语言 时间:
2014-07-19 14:24:11
阅读次数:
157
WScript.Shell是WshShell对象的ProgID,创建WshShell对象可以运行程序、操作注册表、创建快捷方式、访问系统文件夹、管理环境变量。该对象有一个run方法。Run 方法创建一个新的进程,该进程以 intWindowStyle 窗口样式执行 strCommand。语法WshS...
分类:
其他好文 时间:
2014-07-19 12:09:29
阅读次数:
1181
进程管理
--死锁
一、死锁的概念
1.死锁的概念
系统中两个或两个以上的进程无限期地相互等待永远不会发生的条件,系统处于一种停滞状态,这种情况称为死锁。
2.死锁产生的原因
(1)进程推进顺序不当
(2)对互斥资源的分配不当[并不是资源不足,但是剩余资源不足是有可能产生死锁的]。
必须要指出的是,系统资源不足并不是产生死锁的原因,进程资源如果不足则进程就不会被创建,只有在资源部分分配以后,剩余的资源不能满足某些个进程的请求,造成进程集无法推进的现象才是死锁。
3....
分类:
其他好文 时间:
2014-07-19 11:15:04
阅读次数:
207