- 博客(64)
- 收藏
- 关注
转载 Windows 实战项目 001 文件扫描器 (01)
---恢复内容开始---# Windows 实战项目 001 文件扫描器 (01) -主要实现功能 - 搜索系统目录文件 - 找到文件并打印输出 -主要使用到的函数 - FindFirstFile 函数原型:1 HANDLE WINAPI FindFirstFile(2 ...
2017-08-16 15:37:00
199
转载 017 系统内存信息 内存大小 空闲内存 5
# 017 系统内存信息 内存大小 空闲内存 5 GetSystemInfo 函数 函数原型:1 void WINAPI GetSystemInfo( _Out_ LPSYSTEM_INFO lpSystemInfo); 参数1:lpSystemInfo [out] 返回一个 SYSTEM_INFO 结构体指针信息 结...
2017-08-01 16:20:00
165
转载 017 虚拟内存页面区块 4
●VirtualQueryEx 函数 功能:检索在指定进程的虚拟地址空间内的一系列页面的信息。 函数参数 参数1:hProcess [in] 进程句柄 参数2:lpAddress [in, optional] 查询虚拟内存地址 参数3:lpBuffer [out] MEMORY_BASIC_INFORMATION 结...
2017-07-29 09:07:00
225
转载 012 Python 爬虫项目1
# Python 爬虫项目1 ● Python 网页请求 requests POST GET 网页状态码1 # -*- coding: UTF-8 -*-2 from bs4 import BeautifulSoup3 import requests4 5 url = "http://www.baidu.co...
2017-07-27 12:16:00
105
转载 011 Python 爬虫库安装简单使用
# Python 爬虫基础知识 ● Python 爬虫基础知识 安装爬虫库 beautifulsoup4 pip install beautifulsoup4 lxml HTML 解析器 pip install html5lib html5lib ...
2017-07-27 09:00:00
96
转载 010 Python 类的高级特性
# Python 类的高级特性 ● 静态成员1 # -*- coding: UTF-8 -*-2 3 class UserInfo(object):4 #静态成员5 company = 'I Love PoEdu'6 print(UserInfo.company) 1 # -*- coding: UTF-8 -*-...
2017-07-26 09:38:00
113
转载 009 Python 类
# Python 类 ● class 类名(object): ● 简单类的创建 1 # -*- coding: UTF-8 -*- 2 class FirstClass: 3 """创建一个简单的类""" 4 nValue = 12345 5 def outString(self): 6 return...
2017-07-25 19:57:00
93
转载 008 Python 复习
# Python ● Python 内库 Python并不鼓励使用内置库进行编程 Python鼓励使用别人编写好的开源库进行开发 ○ help()函数 查看内部函数定义,帮助文档 1 # -*- coding: UTF-8 -*- 2 def Foo(x,y): 3 """ 4 演示 5 :par...
2017-07-24 09:57:00
93
转载 007 Python 模块及函数
# Python ● 别人写好的东西(库) A:*foo1 foo2 foo3 foo4 B:*foo2 foo1 foo3 foo4 from XX import XX from XX 就是 包的东西 ● __XX__.py 不对外公开的1 #fileDemo.py2 # -*- coding: UTF-8 -*-...
2017-07-23 18:16:00
92
转载 006 Python 高级特性
● 空函数生成1 # -*- coding: UTF-8 -*-2 def myFoo():3 poss #加上poss 就可以生成空函数了●函数print1 print(type(print)) print的本质就是一个变量 如果我们直接给 print 赋值,函数就无法调用了1 # -*- coding: UT...
2017-07-21 17:00:00
74
转载 005 Python 基础特性
● 上一课作业讲解1 f = open("111. 111", "w")2 f.writelines("abcdefg.........")3 f.close 新建一个111.111 以写的方式 向文件写入一行字符串 关闭文件,才会写入,不关闭不会把缓冲区内容写入 1 # -*- coding: UTF-8 -*- 2 count ...
2017-07-21 09:36:00
89
转载 017 虚拟内存 64位及内存对其 3
# 64位及内存对其 ● 内存对齐 ○ 内存取%页面大小 ○ 如果内存没有对齐 CPU无法正常读取数据 CPU会使用错位的方式读取数据 延缓我们对数据的操作性 ● 获取页面大小 ○ AMD INTER CPU x64 x86 的CPU 页面大小 4kb ○ IA64 英特尔 ...
2017-07-17 10:39:00
179
转载 004 Python 文件操作 字典 自定义函数
# Python 3 文件操作 字典 自定义函数 ● python 文档 官方英文文档 https://docs.python.org/3/ 汉化版文档 http://python.usyiyi.cn/ ● open() 返回一个文件句柄 参数1:文件地址,绝对地址,或者相对地址 参数2:文件打开的方式 rU 或 U...
2017-07-17 06:13:00
413
转载 003 Python list 索引
# Python 3 基础语法 ● list 索引 ○ -1代表最后一个 ○ list可以放置各种各样的类型# -*- coding: UTF-8 -*-names = ['Mark', 'coloe',1,2,3,4,5,3.14,True]print(type(names))print(names)print(names[1])pr...
2017-07-14 13:19:00
104
转载 017 虚拟内存2
用户地址空间 ●内存的分配 ○ 当进程被创建并赋予它的地址空间时,该可用地址空间的主体是空闲的,即未被分配的。 若要使用该地址空间的各个部分,必须通过调用 VirtualAlloc函数来分配它里边的各个区域。 每当你保留地址空间的一个区域时,系统要确保该区域从一个分配颗度的边界开始。 当你保留地址空间的一个区域时,系统...
2017-07-13 18:33:00
122
转载 017 虚拟内存
# 内存 ● 物理内存 ○ 电脑上面的内存条 ○ 4G 8G 16G 32G 物理内存是死的,不会增长的 ○ 物理内存可以跟CPU进行通信,所以电脑上面必须有物理内存 ○ 应用程序开发的时候,我们根本无法接触到物理内存。 ● 虚拟内存 ○ 多个进程 每个都分配虚拟地址空间 ○ 模拟所有物理内存的功能 ○ 当我们...
2017-07-11 11:59:00
110
转载 016 程序单开应用 8
实现限制程序多开测试代码创建第一个程序ProcessMutexDemo.exe 1 #include <windows.h> 2 #include <stdio.h> 3 int main() 4 { 5 HANDLE hMutex = CreateMutex(NULL, TRUE, TEXT("Demo")); ...
2017-07-11 09:17:00
130
转载 002 Python 基础语法
# Pyton 基础数据类型 # 整数 Python可以处理任意的整数,当然包括负整数,在程序中的表示方法和教学上的写法一模一样 例如: 1,100,-8080,0等等 计算机由于使用二进制,所以有时候十六进制表示的整数比较方便,十六进制用0x前缀和0-9,a-f表示 0xff00, 0xa6b4c3d2 .等等 ...
2017-07-09 22:36:00
96
转载 016 Event互斥体 8
● CreateMutex 函数原型1 HANDLE WINAPI CreateMutex(2 _In_opt_ LPSECURITY_ATTRIBUTES lpMutexAttributes,3 _In_ BOOL bInitialOwner,4 _In_opt_ LPCTSTR ...
2017-07-09 07:46:00
70
转载 016 信号量 7
信号量● CreateSemaphore 函数原型1 HANDLE WINAPI CreateSemaphore(2 _In_opt_ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,3 _In_ LONG lInitialCount,4 _In_ LON...
2017-07-09 06:35:00
159
转载 001 Python简介 输入输出
Python简介● Python特点 ○ Python 是著名的 “龟叔” Guido van Rossum在1989年圣诞期间,位了打发无聊的圣诞节而编写的一个编程语言 ○ C语言 适合开发那些最求速度,充分发挥硬件性能的程序 ○ Python 用来编写小应用程序的高级编程语言 ● 优点 ○ Python就为我们提供了非常完善的基础代码库,覆盖了网络...
2017-07-08 18:40:00
93
转载 016 可等待计时器对象.6
可等待计时器对象. ● CreateWaitableTimer 函数原型1 HANDLE WINAPI CreateWaitableTimer(2 _In_opt_ LPSECURITY_ATTRIBUTES lpTimerAttributes,3 _In_ BOOL bManualReset,4 _I...
2017-07-08 08:50:00
108
转载 016 EventDemo 5
小项目●拖拽控件●设置编辑框属性●程序逻辑● 获取焦点的事件1 void CEventDemoDlg::OnSetfocusEditText()2 {3 // 获取焦点4 MessageBox(L"Hello");5 }●启动以后会不停的弹 下消息框●解决办法多拖动一个按钮...
2017-07-07 23:53:00
103
转载 016 事件内核对象4
示例#define UNICODE#include <stdio.h>#include <tchar.h>#include <windows.h>#include <process.h>#define ___tmainCRTStartupint *gPNum;BOOL gUsing = FALS...
2017-07-06 06:52:00
98
转载 016 内核对象的Signal状态3
Signal ● Signal = FALSE 相当于标志 ● 进程 初始化FALSE 运行完成 设置位 TURE ● 线程 ● 标准输入输出流 ● 互斥体 ● 信号 ● 可等待计时器 ● 作业 ● WaitForSingleObject() 句柄,时间 ○ 当前正在执行的线程,变成不可调度的状态, ○ 等待Signal 状态...
2017-07-05 08:08:00
177
转载 016 句柄2
● 句柄 ● 句柄内核对象递增数值 ● 进程内核对象 ○ 句柄表 ○ 索引 ○ 指向内核对象的指针 ○ 内存空间 ○ 标志位 ● 句柄是不能够跨进程存在的 ○ File Obj -> 地址 ○ 生成索引 ○ A索引表 R3 -> 拿到索...
2017-07-04 09:20:00
79
转载 016 内核对象1
内核对象 ● 内核对象 ● 句柄的本质 ● 下载 WinObj ○ https://technet.microsoft.com/en-us/sysinternals/bb896657/ ● WinObj 主要是用来参看我们系统中的内核对象 ○ 必须用管理员权限启动程序 ○ 内核对象是属于我的系统的内核对象 ○ 进程仅仅拥有内核对象的...
2017-07-03 21:33:00
70
转载 015 Slim锁及线程休眠及等待及挂起及阻塞
● Slim锁: ○ 可区分读写操作, 可上共享锁 ○ 效率比临界区高 ● Slim的劣势: ○ 一旦上了独占锁, 共享锁的线程会被阻塞 ● 线程状态 ○ 线程的挂起, 休眠, 阻塞, 等待状态都会使线程不可调度 ○ 当收到操作系统发送的通知说线程可以恢复运行的时候, 线程就又变成了可调度状态 1...
2017-07-03 17:56:00
114
转载 015 临界区
● EnterCriticalSection() ○ 多个线程操作相同的数据时,一般是需要按顺序访问的,否则会引导数据错乱,无法控制数据, 变成随机变量。为解决这个问题,就需要引入互斥变量,让每个线程都按顺序地访问变量。 这样就需要使用EnterCriticalSection和LeaveCriticalSection函数。 W...
2017-07-03 17:31:00
87
转载 015 线程优先级
线程优先级● 线程优先级 ○ Windows的每一个可调度的线程分配了一个优先级(0-31),当系统准备去执行一条线程时,会首先看优先级为31的行程,并以循环的方式来进行 调度,只要有优先级为31的线程,操作系统将永远不会调用30以下的线程,这样看起来好像优先级较低的线 程永远得不到被执行的机会,但是其实系统当大部分线程都是属于不可调度状态的,...
2017-07-01 22:58:00
107
转载 015 volatile关键字 线程函数的lParam 原子操作和旋转锁.
●对全局变量进行 volatile 可以阻止编译器对变量的优化 ● lparam 线程函数的传参 1 #include <windows.h> 2 #include <stdio.h> 3 #include <tchar.h> 4 #include <process.h> 5 6 int gNum =...
2017-06-28 08:06:00
90
转载 015 原子操作 旋转锁
以下代码个别情况下会出错 导致值为1#define UNICODE#include <stdio.h>#include <tchar.h>#include <windows.h>#include <process.h>long gNum = 0;unsigned int __stdcall Thre...
2017-06-25 06:25:00
101
转载 015 CONTEXT 线程安全上锁 代码实现
#define UNICODE#include <stdio.h>#include <tchar.h>#include <windows.h>#include <process.h>BOOL bUseing = FALSE;unsigned int __stdcall ThreadRun(void* lPar...
2017-06-24 08:39:00
123
转载 015 线程的状态
线程的状态● 启动 ○ CONTEXT ○ 使用计数 = 2 ○ 暂停计数 = 1 -1 =0 (可以进入CPU的调度,当前线程是可执行状态)● 运行 ○ CPU调度 ○ 执行我们的函数 ○ 时不时的暂停我们的线程 -> 写入 CONTEXT ○ 读取CONTEXT● 挂起 ○ 暂停线程的运行 ○ SuspendThread() ○ ...
2017-06-23 09:07:00
65
转载 015 _beginthreadex CreateThread 函数区别
_beginthreadex讲解● _beginthreadex ○ 纯 C/C++ API ○ 多线程这一块的运行库 ○ C语言的错误处理机制 errno ○ 3条 ○ 线程变得不安全了 _beginthreadex(); //要比CreateThread 安全尽量使用_beginthreadex(); 创建线程 //分配空间 ...
2017-06-23 08:30:00
63
转载 015 线程启动到死亡的详细讲解
线程启动到死亡的详细讲解● CreateThread ○ 线程内核对象 使用计数 2 暂停计数 1 退出代码 STILL_ACTIVE Signaled FALSE CONTEXT 为空 ○ 栈 lpParam lpFnaddr ○ CONTEXT 线程上一次运行时的寄存器 IP(指令寄存器) ...
2017-06-23 08:11:00
73
转载 015 复习
复习 ● 复习 ○ 内核对象 Ring 0 层 使用计数 (HANDLE) ○ 文件 设备(属于设备)IO ○ 进程 ○ 进程和进程之间是独立,哪怕父进程和子进程之间也是独立的 ○ 惰性 虚拟内存 ○线程 ○ 积极 运行 ○ 线程和进程之间是独立的 ...
2017-06-22 08:34:00
63
转载 015 线程退出 启动
线程退出 启动 ● 当一个进程销毁的时候 ○ 销毁临时对象 ○ 释放堆栈 ○ 将返回值设置为我的退出代码 ○ 减少进程内核对象的使用次数 ● 当一个线程销毁的时候 ○ 销毁临时对象 调用我的们的析构函数 ○ 释放当前线程里面锁分配堆栈 -> 窗口 -> HOOK ○ 将返回值设置为我的退出代...
2017-06-18 08:43:00
81
转载 015 输入理解时间片
线程 ● 线程抢占式运行 ○ 启动两个线程 ○ 分别在第一个线程 1 - 100 ○ 第二个线程里面 101-200 ○ 未知 ○ 有一定规律的,哪个线程先抢到时间片,就先执行里面的所有代码 ○ 谁先抢到时间片 就先运行谁的代码 1 #include <windows.h> 2...
2017-06-18 08:11:00
136
转载 015 线程创建
线程 ● 进程启动 ○ 进程内核对象 进程空间 ○ 线程 ● 可以通过IDE设置入口函数 ● 自己创建线程 ○ 创建线程函数 CreateThread() ○ 新建线程内核对象(结构体) ● 线程 ○ 分配一块内存空间,作为当前线程的堆栈 ○ 两条在同一进程内线程,都是隔离的 ○线程他们是封闭的,...
2017-06-13 21:16:00
89
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人