- 博客(19)
- 资源 (2)
- 收藏
- 关注
原创 [持续更新] 编程札礼
写这篇文章的起因是 参加了一个公司的笔试 发现考的都是很细节的东西 所以在学习中遇到这样的问题就记录一下.1.指针在申请/释放后置NULL 防止野指针;2. delete一个不是new出来的地址会导致堆破坏;3.WIN7上系统自带程序 入regedit或calc taskmgr 弹出错误对话框的函数是DialogBoxIndrectParamW;4.务必检测内存分布失败情况mall
2016-03-31 16:26:28 902
原创 第一周学习笔记
第一日主要是对C语言的精华复习1.Printf 的各种打印格式 特别注意%n 有安全问题 不过已经修复不能使用了2.结构体的自然对齐问题 -- ok3.static的作用域 只初始化一次 具有记忆功能.4.Int fun(int a){Static int z =0;//int z就只执行一次 第二次自动遗忘Z += a;Return z;}5.fR
2016-03-31 16:24:15 542
原创 算法练习
设计一个函数需要注意 “严进宽出”严禁是对参数的严格检查 指针 和长度 空值等等宽出是???1.求一个整数二进制数中有多少个1常规解法:判断这个位是否为1 是则计数++代码:intGetDwordBitForOne_EX_EX(unsigned intnum){ intcount = 0;
2016-03-31 16:16:54 1735
原创 [高质量C++/C编程]—代码风格总结 未完结
1.变量定义 每行一个2.一行代码只做一件事3.if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。4.循环后应空一行 在写其他代码5.尽可能在定义变量的同时初始化该变量(就近原则)6.函数参数,后应+一个空格void Func1(int x, int y, int z); // 良好的风格vo
2016-03-31 16:15:36 622 1
原创 NTModel框架与通信(含使用服务加载驱动)
原代码如下#include #define DEVICE_NAME L"\\device\\NTModelDrv"#define LINK_NAME L"\\dosDevices\\NTModelDrv" #define IOCTL_BASE 0x8000#define MY_CTL_CODE(
2016-03-31 16:10:42 1302
原创 驱动是如何运行的
已我所知1.创建一个服务(通过注册表)HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\XXX(ps:通过枚举这个表可以得到所有服务 还能知道他们的类型)其中GROUP与Start决定了驱动加载的早晚若Start相同 则根据在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contr
2016-03-31 16:09:08 1052
原创 IRP结构与理解
Irp->AssociatedIrp.SystemBuffer //输入输出缓冲区 使用DO_BUFFER_IOIrp->IoStatus.Status //返回给用户层的状态,表示这次通信的结果Irp->IoStatus.Information //返回给用户层的大小Irp->UserBuffer //USER_BUFFER时的通信Irp->MdlAddress //使用MDL映
2016-03-31 16:08:33 2181
原创 驱动函数分类
ExXxx()//暂定IoXxx()//IO管理器KeXxx()//目前理解过与同步相关MmXxx()//内存相关ObXxx()//驱动对象PsXxx()//进程相关RtlXxx()//与字符串相关ZwXxx()//与文件 注册 进程相关FltXxx()//文件过滤相关NdisXxx()//Ndis过滤相关ExAllocatePoolWithTa
2016-03-31 16:07:42 950
原创 内核驱动漏洞与攻击预防-MJ0011
总结:1. 不要使用MmIsAddressValid函数,这个函数对于校验内存没有任何意义2. 一定要保证在try_execpt内完成你所有对于用户态内存的任何操作3.留心长度为0的缓存、为NULL的缓存指针和缓存对齐4.不正确的内核函数调用引发的问题5.给驱动提供的功能性接口必须小心6.设备控制尽量使用BUFFERED IO,而且一定要使用SystemBuffer,如果不
2016-03-31 16:06:51 1702
原创 WinDgb命令 持续更新
附看雪某人整理的WinDbg参考手册 v0.6(链接自搜)链接: http://pan.baidu.com/s/1skM5I49 密码: 7bn91.线程2.断点3.查看 d系列4.指针查看 dd系列5.反汇编6.栈7.修改8.进线程命令一:调试开始File->Open Executable 打开一个进程进行调试File->Attach
2016-03-31 16:01:39 1793
原创 算法练习Mystrstr
草稿hello wolrd hxl if(*pFirst == *pFindFirst) pFirst ++; pFindFirst ++; if(*pFirst == *pFindFirst) pFirst ++; pFindFirst ++; for(int i ; i < strlen(hello wolrd) ;
2016-03-31 16:00:24 718
原创 WinDbg dump 分析(驱动蓝屏分析)
minidump 和核心dump 的区别在于一个速度快一些 一个慢一些 结果都是一样的(暂定)加载dump文件 File – > Open Crash Dump…设置并加载符号 不多说设置源文件路径 //不是打开源文件 是设置 在设置符号的下面!analyze –vkv/kp/kb.open –a address //根据地址或符号+偏移定位到代码行蓝屏常见原因
2016-03-31 15:56:18 2144
原创 两款监控工具Procmon,procexplorer
Procmon进程 注册表 文件 等等的操作并能看到这个操作是否成功有助于我们解释奇怪的想象procexplorer进程管理 可以看到很多的属性
2016-03-31 15:53:50 1873
原创 WinDbg x86下查看SSDT SSSDT
前提:设置好操作系统的符号表SSDT表的查看:kd> x nt!kes*des*table*80553fe0 nt!KeServiceDescriptorTableShadow = 80554020 nt!KeServiceDescriptorTable = kd> dd 8055402080554020 80502b9c 00000000 0000011c 8050301
2016-03-31 15:53:09 1443
原创 反调试与反反调试
1-DebugPort2-KdDisableDebugger3-IsDebuggerPresent和CheckRemoteDebuggerPresent4-hookhttp://www.moguizuofang.com/bbs/thread-3235-1-1.htmlhttp://bbs.pediy.com/showthread.php?t=126802http
2016-03-31 15:52:02 5640
原创 花指令
花指令是程序中的无用指令或者垃圾指令,故意干扰各种反汇编静态分析工具,但是程序不受任何影响,缺少了它也能正常运行。加花指令后,IDA Pro等分析工具对程序静态反汇编时,往往会出现错误或者遭到破坏,加大逆向静态分析的难度,从而隐藏自身的程序结构和算法,从而较好的保护自己。几个花指令push edxpop edxinc ecxdec ecxadd esp,1sub esp,1j
2016-03-31 15:48:25 2213
原创 R0与R3联调
1:使用!process 0 0 获取用户空间的进程的信息 //这步之前已经给要调试的驱动加载符号了!process 0 02:使用.process /p + 你需要调试的应用程序的EProcess地址,切换到应用程序的地址空间.process /p 0x81a02af03:重新加载user程序的 PDB文件 (需在Windbg里设置好R3的符号和源代码)然后运行(不要在对话框里的
2016-03-31 15:45:48 1944 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人