- 博客(29)
- 资源 (5)
- 收藏
- 关注
原创 关于使用BP对投票系统的分析
注意:在未拿到授权的情况下所有的渗透都是违法的。文章中使用靶场是墨者学院https://www.mozhe.cn/bug在网络安全里的 投票系统程序设计缺陷分析用到的工具是火狐浏览器和 Burp suite,用火狐是因为该端口方便,网上也有BP工具可以直接下载。算了,我附链接吧!链接:https://pan.baidu.com/s/1wyuqfvp_Wahx1OsO-DCqMw提取码:5jbc–来自百度网盘超级会员V1的分享汉化版的汉化教程:https://blog.youkuaiyun.com
2021-09-10 21:54:30
350
1
原创 Linux部署MYSQL出现的Permission denied问题和MySQLinitialize密码
mysqld: Can't create directory '/var/lib/mysql/' (Errcode: 13 - Permission denied)mysqladmin: connect to server at 'localhost' failederror: 'Access denied for user 'root'@'localhost' (using password: NO)'
2021-05-20 15:37:45
9117
2
原创 Windows核心编程对于临界区的详细描述
临界区是指一个小代码段,在代码执行前能够独占某些资源的访问权;需要注意的是,系统仍然能够控制线程的运行,去安排其他线程。不过,在线程退出临界区之前,系统不会调度其他试图访问相同资源的线程。来看一段代码:const int p = 1000;//对这个全局变量进行操作int g_index = 0;DWORD g_time[p];DWORD WINAPI Thread1(DWORD pParam) { while (g_index<p) { g
2021-05-01 14:51:33
1389
3
原创 用纯win32编程响应WM_COMMAND和WM_NOTIFY消息
大家都知道,windows操作系统是基于消息的,所有的操作都可以用发送消息来完成;大概的图形界面是这样的:文章重点说的是点击事件如何被响应;先创建一个win32的应用程序,再。RC文件下添加一个Dlalog资源。你们可能会认为Dlalog是MFC专属的资源,mfc是微软提供的一个类库,是为了更好的响应这些资源。如果没有自动添加resource文件,需要在头文件中添加现有项。这些工作做好之后,就可以开始写代码了;如果想要自己画窗口,需要在winmain函数下完成 - 为class赋值- 注册...
2021-04-24 19:35:19
2197
1
原创 关于所有指针类型的那些运算
对于一些教材上说:指针的指针就是指向指针的指针 结构指针就是指向结构的指针 数组指针就是指向数组的指针 函数指针就是指向函数的指针对这些说法展开的讨论:那这个定义这么写的话,那是不是还可以这么写:指针的指针就一定要指向一个指针,结构指针就一定要指向一个结构;(离散数学)...
2021-04-07 18:37:27
1300
原创 1978开始的计算机发展史
来上一节计算机历史课!Intel处理器是第一代单芯片、16位的微处理器之一;紧随其后的还有AMD处理器;下面列举了一些Intel处理器的模型,以及他们的特征;K 表示1000,M 表示1000 000,G 表示1000 000 000;8086处理器:产生于1978年,29K个晶体管,8086上增加了一个8位外部总线,构成最初的IBM个人计算机的心脏,当时和微软签订了合同,一起开发MS-DOS操作系统;开始的时候机器型号有32768字节的内存和俩个软驱,从体系结构上来说,机器自由655360字节
2021-03-14 13:59:41
1745
原创 机器对移位运算的看法
先看左移运算,因为相对于右移较为简单;x向左移动K位,会丢弃最高的K位,并在右端补K个0,移位运算是从左到右课结合的,所以x<<j<<k等价于(x<<j)<<k;而对于右移运算,x>>K,一般而言,机器支持俩种右移方式,逻辑右移和算术右移,逻辑右移在左端补K个0,而算术右移在左端补K个最高有效位的值,这种方式对于有符号的运算是非常有效的,...
2021-03-11 17:35:24
1355
原创 RTP协议分析笔记
RTP包由一个头部和数据荷载组成;(二进制协议)头部格式:V 版本号,占2个bit;P 填充位,占1个bit,为0表示包尾没有填充附加字节;否则表示有;X 扩展位,1个bit,为1表示包头后还有一个扩展头部;CC 是CSRC个数,占4bit,可以表示后面CSRC的个数0·15个;M 表示标记位,1个bit,给配置文档来用的;PT 表示荷载类型,7个bit;序列号(SN) 16个bit;时间戳 32个bit,记录数据荷载部分采样时刻;同步信源(SSRC) 32个bit,标记RTP的来
2021-02-09 21:06:58
1192
原创 内核函数KiInsertQueueApc说明
根据KAPC结构中的PpcStateIndex找到对应的A队列3在根据KAPC结构中的ApoMode确定是用户队列函数内核队列将KAPC挂到对应的队列中(挂 到KAPC的ApcKistEntry处)7在根据KAPC结构中的Inserted置1,标识当前的APC为已插入状态9修改KAPC_ STATE结构中的Kerne lApcPending/UserApcPending...
2021-02-08 20:47:00
1524
原创 内核篇-----APC队列介绍
APC队列kd> dt _KAPCnt!_KAPC +0x000 Type : Int2B //APC类型为0x12 +0x002 Size : Int2B //大小为0x30 +0x004 Spare0 : Uint4B +0x008 Thread : Ptr32 _KTHREAD//目标进程 +0x00c ApcListEntry : _LIST_ENTRY /
2021-02-08 20:44:14
1823
原创 内核篇-----用户APC
用户APC执行过程1.执行用户APC的堆栈操作线程从用户层到内核层时,要保留原来的运行环境;寄存器,栈的位置要切换回内核的堆栈,如果正常返回,恢复堆栈环境即可;但是要是有用户APC要执行的话,线程要提前返回到用户空间执行,而且返回的位置不是线程进入内核时的位置,而是返回到其他位置,每处理一个用户APC都会涉及到内核用户空间再回到内核空间(ZwContinue);KiIntializeUesrApc函数分析:备份CONTEXT 线程进0环时,原来的运行环境要保存到_Trap_Frame结构体中,如果
2021-02-08 20:41:36
1278
原创 内核篇-----备用APC
备用APC队列Kd>dt _KTHREADNt!_KTHREAD+0x034 ApcState :_KAPC_STATE+0x138 ApcStatePointer:[2]Ptr32_KAPC_STATE+0x14c SavedApcState :_KAPC_STATE+0x165 ApcStateIndex :UChar+0x166 ApcQueueable :UChar..1.SavedApcState的意义:A进程中的T线程中的所有APC函数,要访问的内存地址都是A进程的
2021-02-08 20:38:27
1119
原创 SDP协议
1.简介SDP全称是Session Description Protocol,就是描述会话的协议。他不属于传输协议,主要用于两个会话实体之间的媒体协商。2.SDP结构SDP描述由许多文本行组成,文本行的格式为<类型>=<值>,表示为key=value;3.SDP的 文本信息包括:会话名称和意图会话持续时间构成会话的媒体有关接收媒体的信息会话名称和意图描述v 表示版本;o 表示用户、会话ID、会话版本、网络类型、地址类型、地址;’s 会话名称i 会
2021-02-08 14:22:05
2808
原创 RTSP协议基础详解
**定义**:RTSP(Real Time Streaming Protocol),实时流传输协议,是TCP/IP协议体系中的一个应用层协议,该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。**特点:** 1. RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。
2021-02-08 13:03:00
1493
原创 进程调度重点笔记
1.进程调度追求的目标是什么?达到极小化平均响应时间、极大化系统吞吐率、保存系统各个功能部件处于繁忙状态和提供某种貌似公平的机制。但是,对于不同的操作系统来说达到的目的也会不同。对于批处理系统,不注重用户等待时间。交互式系统要对于响应时间要适当;2.程序使用CPU的模式有哪几种?它们的特点;在CPU上执行较长时间;这种称为CPU导向或计算密集型程序,通常用于科学计算方面的程序;CPU执行时间短,大部分用于I/O操作;称为I/O导向或者输入输出密集型程序;人机交互式到属于这类程序,如游戏程序以及
2021-01-15 21:44:56
1332
原创 C语言指针知识点总结
指针类型1.读写多少字节的信息不是存放在指针变量中,而是放到了与该地址相关的赋值指令中;2.C语言的指针类型包含俩方面信息:一是地址,存放在指针变量中;二是类型信息,关乎读写的长度,没有存储在指针变量中,位于用该指针读写时的mov指令中,不同的读写长度对应的mov指令不同;对于指针的强制类型转换1.在指针变量赋值上,强制转换不产生实际的指令;2.强制转换的影响不是在转换的时候发生,而是在用转换后的身份去访问内存是体现到指令中;3.如果转换后指针指向的数据类型大小小于原数据类型大小,那么用该转换
2020-12-30 21:39:50
1416
原创 windows系统应用提权 C++
内置用户:Administrator,系统管理员账户,拥有完全控制权限。Guest,来宾账户,供访问共享资源的网络用户使用,仅具有最基本权限,默认被禁用。内置用户组:Administrators,管理员组。Users组,新建用户默认所属的组。Guests组,权限最低;开发环境是VS2019;我先做了权限判断,如果不需要请跳过;看代码:1.信息展示void ShowError(){ LPWSTR lpMessageBuf = NULL; FormatMessage(FOR
2020-12-29 18:48:45
2385
原创 开机自启代码演示
开机启动有俩种方式,一是修改注册表,二是复制exe文件到startup里;下面看具体代码;修改注册表void ChooseInvoke(){ CString RegPath = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"); char sPath[MAX_PATH] = ""; char sSys[MAX_PATH] = ""; std::string strExe = "\\RemoteCtrl.exe "; GetCurr
2020-12-29 14:14:31
3527
原创 TCP协议recv(_Out_writes_bytes_to_(len))参数
谨记:这是winx86环境下的代码用size_t申请了一个len之后size_t len = recv(m_sock, buffer + index, BUFFER_SIZE - index, 0);然后我设计一个包长if ((len <= 0) && (index <= 0)){return -1;}index += len;len = index;但是运行之后nSize和pData的大小确实最大值;nSize是32位无符号整数的十进制最大值,所以断定包
2020-11-20 18:18:37
1669
1
原创 递进分析--MFC的本质
在微软设计MFC是为了使编程人员在实际开发过程中更方便快捷而设计的基础类库。MFC程序要遵循的一个过程是:进入WinMain函数,设计窗口类,创建窗口,显示窗口,更新窗口,然后进入消息循环;MFC本来就是基于消息循环创建的,如果没有消息循环,窗口会一闪而过;看代码: //消息循环 MSG msg; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg);//接收消息
2020-11-18 18:09:27
1120
原创 父进程检测
启动方式一般有3种:1,Explrer.exe(资源管理器启动)2.cmd.exe(命令行启动)3.Sercices.exe(系统服务)还要防止用调试器打开软件VOID ParentsTest(){ MyNtQueryInformationProcess pZwQueryInformationProcess; pZwQueryInformationProcess=(MyNtQueryInformationProcess)GetProcAddress(getModuleHan); PROCE
2020-11-15 22:47:18
1504
原创 保护模式-段描述符和段选择子
保护模式段寄存器(96位)ES CS SS DS FS GS LDTR TRcs 为代码段寄存器,一般用于存放代码; 通常和IP 使用用于处理下一条执行的代码cs:IP基地址:偏移地址cs地址对应的数据 相当于c语言中的代码语句ds 为数据段寄存器,一般用于存放数据;ds地址对应的数据 相当于c语言中的全局变量ss 栈段寄存器,一般作为栈使用 和sp搭档;ss地址对应的数据 相当于c语言中的局部变量ss相当于堆栈段的首地址 sp相当于堆栈段的偏移地址es 为扩展段寄
2020-11-05 17:34:39
2118
原创 InLineHook原理
InLineHook原理:通过硬编码的方式先内核API的内存空间写入跳转语句,当程序跳转到我们的程序时,需要执行3个步骤:1,重新调整当前堆栈;需要保证内核API在执行完代码后返回我们的函数,就需要对当前的堆栈做调整;2,执行遗失的指令;执行我们的代码时,可能会覆盖内核API的指令,需要在我们的代码空间将遗失的指令补回来;3,信息过滤;根据返回结果做一些信息过滤,这些内容因被hook的API以及hook目的的不同而不同;InLineHook工作流程:1.验证内核API的版本2.撰写之间的函数,
2020-11-03 00:01:16
1571
原创 内存管理重点笔记
2020/10/2个人笔记:1.内存管理方法固定加载地址的内存管理,固定分区的内存管理,非固定分区的内存管理,交换内存管理。固定加载地址的内存管理只适合单道编程,而其他3种适合多道编程,而且这3种都使用同一种实现机制:基址与极限;基址与极限的工作原理是将程序发出的虚拟地址加上基址而获得物理地址;交换内存管理介绍:虽然这种内存管理方式最灵活和先进,可以解决因程序所需空间增长而无法继续运行的困难,又可以实现多道编程,但是其中最重要的俩个问题是空间浪费和程序大小受限。空间浪费是指空间会被散布在
2020-10-02 22:26:35
1110
原创 死锁的解释
(文章来自于操作系统之编译原理)首先是为什么会发生死锁?这就相当于一个交通堵塞,一个交通事故,谁都无法前进,就是死锁;其实就是对资源的竞争;线程按顺序使用资源:1>请求;2>使用;3>释放在资源请求没有响应的情况下必须等待;等待有俩种应对方式一是阻塞等待,二是直接返回,等待下次请求;当然也可能失败退出,终止线程;第二种情况没有等待,所以不会发生死锁,第一种情况,就有可能发生死锁,就像这样:R是资源,T是线程;每个线程都在等待资源,没法推进,发生死锁;现在可以给死锁下个定义:如
2020-09-30 00:13:11
1189
原创 双机调试完整步骤
双机调试完整步骤这样的调试如果不了解的话配置起来会很恶心,本人在配置第一遍的时候踩过很多雷,由于重装了系统,这是第二次装这个双机调试,希望可以帮到你;1.先要下载windbg和XP系统的虚拟机,我这里提供windbg下载资源和XP镜像系统;windbg下载地址:https://pan.baidu.com/s /1jJULExadpa0neyN7QvL5fw 提取码:2oktXP镜像系统:https://pan.baidu.com/s/1XAIjNnILF6kd22z9In7aRA 提取码:n
2020-08-18 18:11:32
4296
7
原创 植物大战僵尸无冷却方式。
用ce收太阳,这里收到俩个值,当然会有很多数据的情况,就需要太阳变动去反复搜索筛选。右键数据是什么该写了这个地址,然后变动太阳,得到这条指令。![](https://img-blog.csdnimg.cn/20200709120719110.png?x-oss-process=image/wa
2020-07-09 12:56:03
6017
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人