自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

懒羊羊的梦想

简简单单

  • 博客(64)
  • 收藏
  • 关注

原创 c++反汇编学习笔记(长期更新)

最近看的网课上面讲的比较好,让我感觉重新学了一遍C语言。现在我总结一下里面的知识。函数调用:介绍一下缓冲区,当函数调用的时候要提升堆栈,缓冲区里面存储局部变量。如果以某一种方式访问了存储函数返回地址的空间,那么会造成缓冲区溢出问题。...

2019-11-07 18:53:47 1117

原创 本次在idea中使用swing的问题以及GUI form的问题

这个是以为博主总结的swing基础编程讲解,我感觉非常适合入门swing基础编程讲解https://blog.csdn.net/cb_east/article/details/79949415下面来介绍一些idea自带的GUI form看看怎么建立GUI form工程先是创建新工程选择Java后别的不用选了,直接下一步把项目名称建好就行了。当控件都拖动好的时候,你会发现你的代...

2019-11-02 11:04:12 5077

原创 记录一下硬盘信息

硬盘信息

2022-11-04 09:16:01 139 1

原创 编写仿supersu的权限管理工具(aosp11 root、实现aosp系统内置wifi、root管理apk)

一、题目介绍项目所有内容均需基于AOSP原版代码实现,版本可选择10或者11,测试设备建议使用Pixel3.1、修改su代码,并实现root管理APK,功能至少包括APP申请root权限管理、root权限请求记录;2、实现USB调试功能一键开关,WiFi一键开关;3、实现AOSP系统内置指定WiFi名称与密码,刷机后可自动连接指定WiFi;4、(可选)为AOSP11版本系统添加OpenSSH Server;二、环境介绍pixel3测试机一台aosp11源代码(android-11.0.0_r

2021-08-26 17:11:31 2535 11

转载 有符号数和无符号数探讨

这个问题,要是简单的理解,是很容易的,不过要是考虑的深了,还真有些东西呢。下面我就把这个东西尽量的扩展一点,深入一点和大家说说。一、只有一个标准!在汇编语言层面,声明变量的时候,没有 signed 和 unsignde 之分,汇编器统统,将你输入的整数字面量当作有符号数处理成补码存入到计算机中,只有这一个标准!汇编器不会区分有符号还是无符号然后用两个标准来处理,它统统当作有符号的!并且统统汇编成补码!也就是说,db -20 汇编后为:EC ,而 db 236 汇编后也为 EC 。这里有一个小问题,思考

2021-02-01 16:11:44 404

原创 驱动签名:Error information: “SignerTimeStamp() failed.“ (-2147012865/0x80072eff)

此时需要更换一下网址http://timestamp.digicert.com/scripts/timestamp.dll

2021-01-31 22:06:40 828 2

原创 windbg 双机调试连接不上

VMware 的虚拟机设置里面,如果要使用串口2,也就是com2,那么必须给把打印机给加上,否则就算设置了com2,其实使用的是com1.曾经看软件调试的时候,书上需要使用串口1,所以我把打印机给删了,但是后来再想使用com2的时候,就必须给把打印机给重新加进来,否则其实是com1....

2021-01-31 21:02:11 725

原创 _LIST_ENTRY 中的flink和blink

这里的flink和blink要注意一下,flink指的是下一个,blink指的是前一个。和一开始想的方向是反着的。

2021-01-25 18:07:30 595

原创 在VS反汇编中还原最纯正的汇编代码

项目配置中

2021-01-21 16:03:32 220

原创 Windows驱动c++重载new delete

先上代码,由于比较容易理解,后期再补讲解#include<ntddk.h>#pragma warning (disable: 4996)void* __cdecl operator new(size_t size){ KdPrint(("进入全局的new\n")); return ExAllocatePool(PagedPool, size);}void* __cdecl operator new[](size_t size){ KdPrint(("进入全局的new\n

2021-01-15 22:27:04 246 1

原创 win10 64位 让操作系统能够使用测试驱动签名

win10 没法F8禁止驱动签名。就给管理员打开控制台 输入 /set testsigning on让操作系统进入测试模式然后重启

2021-01-14 20:27:03 721

转载 用include<iostream.h>报错问题

问题补充:已经将#include <iostream.h>改为 #include using namespace std; //必须分两行明白了以下几点,问题就搞清楚了:1、要区分标准C的库和标准C++的库。iostream是C++的库,stdio.h是标准C的库。2、新的C++标准摒弃了.h形式的头文件,所以在vs2005里面是没有iostream.h的头文件的。3、在早期的vs版本,比如VC6.0,用的还是老版本的C++标准库,例如iostream.h,并且当时标准库也没有引入.

2021-01-05 20:41:36 29377

原创 C语言实现继承,封装,多态

课堂上了老师说c++是面向对象的语言,但是C语言也可以面向对象。继承性typedef struct parent{ int parent_data;}Parent;typedef struct child{ struct parent myParent; int data_child;}封装性#include<cstdio>struct Data;typedef void (*process)(struct Data* pData); typ

2020-09-04 17:32:25 180

原创 设计模式开篇

设计模式为什么要记录设计模式的学习?因为我在逐渐深入编程的过程中,我发现我学会了语法但是并没有写出很精彩的代码,甚至很多的语法因为我很久不用就直接放弃了,我虽然经常性的回顾语法,但是还是不管用,所以我想通过提升日常的编码的精巧性来帮助我深入了解各门语言。同时我发现学习设计模式会让我有种恍然大悟的感觉,我很喜欢这种能带给我恍然大悟的思考。...

2020-09-03 22:11:51 103

原创 Windows API前缀对应的意思

前缀意思Cc缓存管理器Cm注册表Dbg调试Ex执行体函数Halhal提供的接口函数IoI/O管理器Ke内核函数Lpc本地过程调用Mm内存管理器

2020-08-29 20:09:24 317

原创 VS2019+WDK10编写xp平台的驱动

VS2019+WDK10编写xp平台的驱动之前自己在网上找了一堆教程,各种配置一大堆都没有成功,但是都没成功。如何配置直接贴张图,其实非常非常简单。

2020-08-16 16:45:53 1005 1

转载 Windows注册表解析

https://www.cnblogs.com/wfq9330/p/9176654.html

2020-08-10 17:36:45 197

转载 C语言结构体中的冒号的作用

结构体中的冒号表示位域。位域出现的原因是由于某些信息的存储表示只需要几个bit位就可以表示而不需要一个完整的字节,同时也是为了节省存储空间和方便处理。struct bit_struct{ int bit1:3; int bit2:5; int bit3:7;}data;说明:1、位域必须存储在同一个类型中,不能跨类型,同时也说明位域的长度不会超过所定义类型的长度。如果一个定义类型单元里所剩空间无法存放下一个域,则下一个域应该从下一单元开始存放。例如:所定义的类型

2020-08-10 16:07:44 1101

原创 FDO和PDO的区别

PDO:physical device object (PDO)A device object created by a bus driver using IoCreateDevice. The PDO, which represents the device for the bus driver, is at the bottom of the device stack for a device.FDO:Functional device object. A device object creat

2020-08-09 21:46:52 2185

转载 IoSkipCurrentIrpStackLocation与IoCopyCurrentIrpStackLocationToNext区别

IoSkipCurrentIrpStackLocation与IoCopyCurrentIrpStackLocationToNext函数都是将系统的IO_STACK_LOCATION 数组指针向下移动一次,以实现将当前IRP转发给更低一层驱动,那么这两个函数有什么区别呢?IoSkipCurrentIrpStackLocation只是将IRP简单的转发给更低一层的驱动,至于结果怎么样就不得而知了。有的时候我们希望得到IRP转发后的状态:比如异步IRP,我们希望当IRP完成后将异步IRP计数器减一,这时候就需

2020-08-07 21:04:44 247

原创 Windows内核编程(三) 基础概念

基础概念上下文环境:一名合格的驱动开发者需要时时刻刻知道当前驱动所处的上下文环境,因为内核是共享的,稍不留神直接蓝屏。驱动入口函数和驱动卸载函数都隶属于进程pid为4的SYSTEM系统进程。其代表的是系统内核。一般来说,内核代码都运行在SYSTEM进程空间中,但是驱动对象的派遣例程一般在发起请求的进程中。中断请求级别(IRQL):高中断请求级别可以中断低中断请求级别的执行。下面进行举例:PASSIVE_LEVEL: 0 应用层线程以及大部分内核函数都处于该级别,可以无限制使用所有的内核API,可

2020-08-01 20:24:14 445

原创 sc start 驱动报错1275 此驱动程序被阻止加载

驱动报错1275给出两个思路,一个是禁用驱动的强制签名策略,这个具体的步骤就不说了。再一个就是编译的方式错了,比如我的目标系统是64位的,我编译了一个32位的驱动放上去是不行的。这个不像是普通的应用程序一样可以兼容,因为你驱动直接进的内核里面运行,而内核实际上就是64位的,普通应用程序转换数据类型是在进入内核大门之前就转换完了。...

2020-07-31 21:52:16 4431

原创 实体机ping不通虚拟机

首先虚拟机能够让实体机ping通,那么就把虚拟机的所有防火墙都关了就行了。之后我出现了实体机ping不通虚拟机的情况,然后上网查了查发现只要打开实体机的vm8的一个网卡就行了。把bai你的虚拟机打开,启动系统成du功后,在虚拟zhi机属性设置里,修改dao网络连接为NAT格式,然后在物理机也就是你的宿主机里找到网络连接,启用VM8网卡,然后禁用其他的VM网卡(我机器里就还有个VM2网卡),设置其为自动获取IP,然后回到虚拟机中的系统中,设置其IP为自动获取!顺便在虚拟机系统中用IPconfig -al

2020-07-31 21:14:59 881

原创 Windows内核编程(二)内核驱动运行,调试

内核驱动运行、调试驱动的运行由于Windows数字签名的原因,没有签名或者使用测试签名的都不能放到64位系统上运行。两个解决办法。一、将系统设置为调试模式二、关闭系统的驱动签名校验。服务的基本操作服务管理器:管理系统上的所有服务,创建、注册、修改、启动服务。所以我们编写程序的时候,首先要打开服务管理器。其API为:SC_HANDLE WINAPI OpenSCManager( LPCTSTR lpMachineName, //字符串常量,表示机器名字,传NULL就是本机器 LPCTST

2020-07-30 22:16:33 647

原创 Windows内核编程(一)第一个驱动的编写,以及生成

内核编程内核入口函数NTSTATUS DriverEntry( PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath )第一个参数表示驱动对象指针:驱动运行后,OS在内存中为其分配了一个DRIVER_OBJECT的数据结构,里面记录这个驱动的一些信息。第二个参数表表示当前驱动所对应的注册表的位置typedef struct _UNICODE_STRING{ USHORT Lenghl; USHORT MaximumLengt

2020-07-30 19:34:17 517

原创 作业调度算法模拟

作业调度算法模拟1)先来先服务(First-Come First-Served,FCFS)调度算法先来先服务调度算法遵循按照进入后备队列的顺序进行调度的原则。该算法是一种非抢占式的算法,是到目前为止最简单的调度算法,其编码实现非常容易。该算法仅考虑了作业到达的先后顺序,而没有考虑作业的执行时间长短、作业的运行特性和作业对资源的要求。2)短作业优先(Shortest-Job-First,SJF)调度算法短作业优先调度算法根据作业控制块中指出的执行时间,选取执行时间最短的作业优先调度。本实验中规定,该

2020-06-12 18:44:25 2734

原创 页面置换模拟程序设计

页面置换模拟程序设计1、通过软件模拟页面置换过程,加深对请求页式存储管理实现原理的理解2、理解和掌握OPT、FIFO和LRU三种页面置换算法,深入分析三者之间的优缺点。#include<stdio.h>#include<stdlib.h>#define VM_PAGE 7 /*假设每个页面可以存放10条指令,则共有32个虚页*/#define PM_PAGE 4 /*分配给作业的内存块数为4*/#define TOTAL_INSERT 1

2020-06-12 18:30:45 1412

原创 动态分区分配方式的模拟------首次适应算法和最佳适应算法

首次适应算法是将空闲区按照起始地址排序,从中找到第一个刚好可以容纳进程所需空间的区域进行分配。代码的思路相对简单,时间性能上不是很高,仅仅达到了效果。1.用C语言分别实现采用首次适应算法和最佳适应算法的动态分区分配过程alloc( )和回收过程free( )。其中,空闲分区通过空闲分区链来管理:在进行内存分配时,系统优先使用空闲区低端的空间。2.假设初始状态下,可用的内存空间为640KB,并有下列的请求序列:•作业1申请130KB。•作业2申请60KB。•作业3申请100KB。•作业2释放6

2020-06-12 15:35:10 5180

原创 用回溯法解决0-1背包问题

回溯法解决0-1背包问题回溯法的有几个点需要注意:如何建立解空间树如果进行剪枝是否需要达到最优先来看一下题目:然后我们上代码:#include<iostream>using namespace std;#pragma warning(disable:4996)int best_select_array[10] = { 0 };int weight_array[10] = { 0 };int value_array[10] = { 0 };int get_all

2020-06-04 16:42:48 3457

原创 Linux下进程同步问题——生产者消费者

生产者消费者设计思路,首先有缓冲区内资源,生产者消费者都用,而且是资源信号量,那么需要建立两个信号量,一个代表空闲的个数,一个代表非空闲个数。同时缓冲区的使用是互斥的,所以需要建立一个互斥信号量。生产者#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/ipc.h>#include<semaphore.h>#include<fcntl.

2020-05-27 22:53:17 863

原创 贪心算法解决TSP问题

利用贪心问题解决TSP问题整体思路用的最近点策略,也就是说第一次以原点为起点,对其他点挨个遍历,找到最短的边对应的终点就是我们找的点,也是下一回遍历的起点。(当然,每次得到的终点以及最开始的原点,只能使用一次)#include<cstdio>#include<stdlib.h>constexpr int max_length = 10; //编译时就能确定的常量struct stack { //构造栈 int* pre, * ord; int length;

2020-05-17 12:01:46 2181

原创 TSP问题(利用动态规划法)

TSP问题TSP问题是什么?TSP问题是指旅行家要旅行n个城市,要求各个城市经历且仅经历一次然后回到出发城市,并要求所走的路线图最短。题目带权图的代价矩阵无穷3675无穷2364无穷2675无穷算法设计思路待补充源代码#define _CRT_SECURE_NO_WARNINGS#include<iostream...

2020-05-01 22:54:29 1354

原创 C++求数组子集

C++求数组子集本文的写作缘由是最近遇到了编写代码解决TSP问题,其中涉及到了求数组的子集,尽管我可以按照题目中给出的数组自己手动构造子集,但是我觉得那样得来并不是很踏实,还是想要写一个程序来更灵活的获取数组所有子集。举例输入:{0,1,2}输出:{ },{0},{1},{2},{1,2},{1,3},{2,3},{1,2,3}开始的时候我从网上查了很多,发现有很多种方法去求子集...

2020-05-01 20:12:56 4618

原创 maven下载、配置环境变量、修改阿里云镜像、idea中配置maven

maven配置教程本文主要是对于maven的一些配置和操作的总结,涉及maven原理较少 。下载maven配置maven环境变量修改maven settings配置maven镜像为阿里云在idea里面配置maven的settings下载maven首先我们要知道maven是属于Apache的,所以我们先搜索apache maven,并进入对应官网。来到官网,我们很明显能看到...

2020-04-24 22:44:53 1628

原创 从零开始写玩具操作系统(一)bochs配置

本章节完全参考 郑钢老师的《操作系统:真象还原》我们的实验环境是在Windows 64位环境下首先我们下载最新的bochs下载地址: https://sourceforge.net/projects/bochs/我们就下载最新的版本就行:安装过程略。接着需要我们切换到安装目录下用记事本打开bochsrc.bxrc来写配置文件因为我最开始配置的时候遇到了很多的坑,所以我就把我的配...

2020-02-24 22:09:25 951 1

原创 windbg下载符号方法

方法一:使用windbg安装目录下的symchk工具具体步骤:在windbg安装目录下面打开cmd,输入以下命令symchk notepad.exe方法二:使用windbg本身的命令在windbg命令行下面输入.reload /f notepad.exe...

2020-02-19 21:49:06 5517

原创 bochs调试玩具操作系统的方法

我用的是bochs 2.6.11 首先进入bochs的调试模式使用的是,打开bochsdbg。同理他也会让你选择配置文件。选择完了配置文件,弹出两个窗口,一个是调试命令行,一个是操作系统窗口最初的时候,他会显示一些日志,然后注意:显示了下一条指令的所在地和指令内容。我们观察因为实模式下 BIOS的引导代码实在 0xf000:0xfff0这里,也就是机器一加电后,cs和ip的初始化内容...

2020-01-19 19:52:05 828

原创 Windows产品

2019-12-22 21:23:55 118

转载 数据结构复习

数据结构基础概念篇 原创 ...

2019-12-21 19:21:59 192

原创 7-2 二叉搜索树的插入序列

7-2 二叉搜索树的插入序列二叉搜索树定义为:左子树仅包含小于根结点的元素;右子树仅包含大于根结点的元素;左右子树均为二叉搜索树。一棵二叉搜索树可以有不同的插入顺序。例如,对于如下的二叉搜索树插入序列可以是 3 2 1 4 6 5, 也可以是 3 2 4 1 6 5 但不可以是 3 2 4 5 6 1。下面给出一棵二叉搜索树的先序遍历序列,请编写程序求出该树的插入序列个数。考虑到总...

2019-12-08 14:56:41 2026 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除