- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 LeetCode70.爬楼梯 纯数学解法(组合)
题目描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。逻辑思路最开始简单概括一下逻辑:爬楼梯总次数=不同的迈脚的次数(可以通过爬多少次2阶算出)*在哪个位置爬2阶迈多少次脚(爬多少次2阶)n个台阶,只看选1阶或选2阶的数量,可以有n/2+1种选法。也可以说,因为不选2就是选1,直接看可以选多少不同2的次数决定了有多少选法,即总共需要迈多少次脚才能爬完楼梯。比如说爬5阶台阶,你可以选只爬
2021-03-27 12:31:41
870
1
原创 驱动开发:驱动加载错误(net start) 系统错误127 找不到指定的程序
非常低级的错误,但是因为搜问题的时候没找到合适的答案,因此写博客记录一下错误描述在win7x86系统环境下加载驱动,驱动安装成功但是无法加载:>> net start 驱动名发送系统错误127.找不到指定的程序错误原因项目平台设置错误:TargetOSVersion不能大于windows7...
2021-03-17 17:10:41
1752
原创 LeetCode206 反转链表(C++思路和代码)
Question反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?Answer第一次提交:32ms/8.3MB/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *nex
2021-01-19 20:07:44
248
原创 C++魔法师元素平衡
题目描述元素平衡《XX魔法书》中记载,只有魔法师体内地火水风四种元素平衡的时候才是绝对安全的。某魔法师在给自己做了一个体检, 发现自己体内的四种元素数量分别是A,B,C,D,魔法师慌了,这时他看到魔法书中记载了一种转换魔法, 可以把任意两个单位的元素转换成任意一种元素。请问魔法师是否可以通过这种魔法,在保证自己体内的元素总量尽可能多的情况下, 使得自己体内的四种元素数量完全相同?如果可以,请输出平衡后体内元素总量,如果不能请输出-1。限制条件时间限制:3000ms内存限制:589824kb输入
2020-09-01 17:15:35
2132
原创 bat脚本判断服务是否存在windowsXP
有一个在xp系统下自动判断snmp服务并安装的需求。在网上查了一些判断服务是否存在的办法,最常见的是调用sc query |find /i "snmp",但是经过我测试,这个方法只能判断服务是否开启,对于存在未开启的服务无法查询,因此直接查询服务是否存在应该使用sc query snmp这个语句。这些内容在下面这篇博客bat判断window服务是否存在也提到了。这个办法在win7、win10甚至win2008测了都是可以的,但是!偏偏winxp就会失败。具体原因就出在errorlevel这个值上,在其
2020-08-14 17:00:28
1134
原创 驱动开发:BSOD 0x7E(8000003)或命中断点卡住,__security_init_cookie导致
这两天在学hook的时候,写了一个很简单的测试驱动,结果发现在x86能正常运行,而到了x64就直接蓝屏了(签名正常),这个时候双机调试发现连DriverEntry函数都没进去,直接在__security_init_cookie函数就跳到KeBugCheck了。********************************************************************************
2020-07-28 11:15:43
961
原创 驱动开发:英文版写txt文件乱码(Unicode字符写入问题)
由于开发环境中有英文版的需要,所以需要在时区设置为英文时区时,能使用驱动写中文文件。相比在中文环境下,会产生的问题简单来说就是Unicode字符的写入问题。写入函数主要是以下这个函数ZwWriteFile(readFileHandle, NULL, NULL, NULL, &ioStatusBlock, conTwo, 2 * sizeof(WCHAR), &byteOffset, NULL);1.原因之前因为写入Unicode字符会有格式上的显示问题,所以在写入之前会进行转换:
2020-07-06 20:04:59
541
原创 驱动开发之注册表:获取注册表HKEY_CURRENT_USER对应路径(SID)
在内核中hook注册表必须要使用转换后的路径,例如HKEY_LOCAL_MACHINE的路径对应的是“\Registry\Machine”,但是HKEY_CURRENT_USER相对比较特殊,因为它不是一个固定的值,需要你根据其他东西判断。因此本文给出几种获取HKEY_CURRENT_USER对应路径的方法。方法一 根据注册表项获取我最开始使用的获取HKEY_CURRENT_USER对应路径的...
2020-01-13 16:48:20
2252
原创 驱动开发:蓝屏BSOD 0x3B 内存访问错误
寻找错误的原因每次都是漫长而艰辛的这次的0x3B错误是内存访问错误,通过windbg我们很容易定位到了错误语句LONG search(UNICODE_STRING input) { if (path_num_count > 0) { ULONG left = 0; ULONG right = path_num_count - 1; while (left <= r...
2019-11-01 16:20:30
1405
原创 驱动开发:BSOD 0x93蓝屏 无效句柄
BSOD 0x93问题是一个很明显的句柄问题。下面记录问题的内容和解决方法,以供参考。通过windbg我们可以定位问题出现的函数,下面给出大概的代码结构HANDLE fileHandle=NULL;BOOLEAN AddFile(UNICODE_STRING content, TIME_FIELDS time){if(fileHandle==NULL){ZwCreateFile(&...
2019-10-12 14:50:21
511
原创 驱动开发:使用Verifier产生BSOD 0x135或0xD6 蓝屏及解决
当错误报的是0x135时,用windbg分析dump文件实在是看不出什么东西,这里还是放个大概,供大家比对参考:STACK_TEXT:807ec12c 840eb654 00000135 c0000005 807ec270 nt!KeBugCheckEx+0x1e807ec144 840eaa14 83ec6494 00000000 807ec8b0 nt!CmpFatalFilter+0...
2019-09-25 11:52:05
1303
原创 驱动开发:BSOD 0xC4_f6 句柄问题
刚接触驱动开发经验太少,被BSOD 0xC4_f6蓝屏问题困扰了几天,最后在论坛问到了原因。下面记录问题及解决办法。问题:同样的驱动某一天在虚拟机中跑直接导致了蓝屏,只要开启就会蓝屏。利用windbg分析dump文件,查看堆栈得知是调用到ZwQuerySymbolicLink函数时出的问题再查找 0xC4_f6的bug信息,得知是驱动程序将用户模式的句柄引用为内核模式。找了半天也没理...
2019-09-19 11:25:04
392
原创 驱动开发:内存管理,防止内存泄漏
动态申请和释放ExFree**后,需要对指针置NULL,这样再释放之前可以判断是否为NULL来防止重复释放,否则重复释放会蓝屏若调用了RtlAnsiStringToUnicodeString,需要使用RtlFreeUnicodeString释放若为一段指针动态申请了一段内存,不要再直接让它指向常量,而应该使用RtlStringCbCopy类函数进行复制特别注意在申请和释放之...
2019-09-07 16:43:02
382
原创 ccf认证2018.12-2小明放学
ccf认证2018.12-2小明放学 满分代码为了积分写自己的第一篇博客,但是还是放点东西上来吧刚去模拟题库策的满分代码#include<stdio.h>int main(){ long r,y,g,n,a[100000][2],i,s; long long sum=0; scanf("%ld%ld%ld",&r,&y,&g); scanf("...
2019-04-22 20:47:44
273
ccf2018年12月第二题
2019-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人