![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
开发
ma_de_hao_mei_le
wochinijiamile.blog.csdn.net的博主
展开
-
vs2019编译libcurl
libcurl源码下载地址: https://curl.haxx.se/download.html。运行完成后,lib文件会生成到下面这个目录中。原创 2023-02-07 21:27:35 · 164 阅读 · 0 评论 -
另类的字符串比较方式
【代码】另类的字符串比较方式。原创 2023-02-02 13:55:33 · 71 阅读 · 0 评论 -
会变大吗12345
那么有可能是编译器优化的结果,因为push reg可以比 sub esp,xx要节省几个字节。有时候再看汇编代码的时候会看到莫名其妙的push操作。这里的reg指的是寄存器register。原创 2023-01-29 15:51:06 · 93 阅读 · 0 评论 -
x86 callingconvention
和x64的calling convention有所不同,x86在调用函数的时候不使用寄存器来传参,而是全部通过栈来进行传递,第一个参数最后一个压栈。这里的ecx就是第一个参数,即第一个字符串的地址,可以看到他是在第二个字符串的地址压栈之后才进栈的。原创 2023-01-28 14:54:24 · 63 阅读 · 0 评论 -
IDA显示中文字符串
里面有一个crackme.exe,书上的ida截图显示可以正常显示中文字符串。选中偏移量地址,按alt+a,设置c style即可。虽然没有像书中一样显示在注释中,但是凑合也能用。最近在看看雪的加解密那本书。原创 2023-01-28 14:01:57 · 1352 阅读 · 0 评论 -
C++继承构造函数的冲突问题
这里发生冲突的函数就是A和B的含参构造函数,你可以能会问,他们两个只有参数一样,但是函数名并不一样啊,一个是A一个是B,这里需要注意的是,到了派生类这里,构造函数的函数名就相当于是忽略的了,全都是一样的,至于是什么名字,我也不知道。那么为什么是含参构造函数发生了冲突呢,原因就是派生类C并没有实现自己的含参构造函数,A和B的默认构造函数之所以不会冲突,是因为被C的默认构造函数覆盖掉了,所以不会报错。或者,再给C实现一个含参构造函数。大概意思就是函数冲突了。原创 2023-01-19 04:18:37 · 160 阅读 · 0 评论 -
构建适用于win7的openssl静态库
构建的整个流程和之前是一样的区别是,你需要安装vs2010和sdk,而不是2012或者其他版本需要的关注微信公众号或者发邮件找我要原创 2022-12-06 12:17:50 · 118 阅读 · 0 评论 -
C++的四个cast
翻译自:https://www.quora.com/How-do-you-explain-the-differences-among-static_cast-reinterpret_cast-const_cast-and-dynamic_cast-to-a-new-C+±programmerstatic_cast是在编译时进行类型分析主要用于各种数字数据类型的转换,比如int到short等,以及指针和引用的转换dynamic_cast这个转换只能用于指针和引用,这个东西基本上只为多态服务他可以保证类型转换原创 2022-12-06 12:16:07 · 576 阅读 · 0 评论 -
openssl lib includefor windows
https://kb.firedaemon.com/support/solutions/articles/4000121705https://github.com/wqreytuk/article/tree/main/openssl原创 2022-11-08 12:48:34 · 102 阅读 · 0 评论 -
MS-NRPC session key协商过程
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nrpc/7b9e31d1-670e-4fc5-ad54-9ffff50755f9原创 2022-10-26 10:02:53 · 86 阅读 · 0 评论 -
Using Thread Local Storage
Thread Local Storage,简称TLS,可以使得同一个进程的多个线程使用一个由。CommonFunc函数会使用TlsGetValue函数来访问与本县城的索引关联的数据。每一个线程在终止前都会释放自己的动态内存,进程终止前会使用TlsFree来释放索引。函数将这块内存的地址存放到TLS插槽中,这个TLS插槽指的应该就是索引。函数分配的索引来存储或获取本线程的本地值(局部变量)在这个例子中,当进程启动的时候,一个索引就会被分配。每一个线程启动的时候,会分配一块动态内存,然后使用。原创 2022-10-19 05:48:47 · 102 阅读 · 0 评论 -
重放chrome中network中捕获到的数据包
把复制下来的内容放到下面这个网站中就行了。原创 2022-09-19 14:19:35 · 296 阅读 · 0 评论 -
Windows编程 char转tchar
【代码】Windows编程 char转tchar。原创 2022-09-16 15:06:25 · 228 阅读 · 0 评论 -
widnbg中看到的dll中的函数并不一定就是导出函数
对于这种情况,我们需要针对特定的版本使用偏移量来获取到该函数的地址。这个是在windbg中查看ntdll.dll的函数的输出。命令可以看到当前进程加载的ntdll.dll的绝对路径。首先要获取到dll加载的虚拟内存的基地址。...原创 2022-08-26 12:08:00 · 362 阅读 · 0 评论 -
windows编程中ULONG_PTR和指针的互相转换
【代码】windows编程中ULONG_PTR和指针的互相转换。原创 2022-08-26 10:07:50 · 331 阅读 · 0 评论 -
vmware无法从虚拟机中ping到vmnet8网卡
但是如果ping不到192.168.56.1,那通过网络进行调试也就不好使了。我搞内核调试,通过网络连接debugger和debuggee。即使用vmnet8网卡,位于192.168.56.0/24段。debuggee是虚拟机,网络连接模式为NAT。解决办法就是重置vmnet8网卡。禁用之后再启用就行了。原创 2022-08-22 13:12:19 · 1211 阅读 · 0 评论 -
c*dn免登陆复制代码
12q53tgrfbvdhydgf原创 2022-08-19 16:01:40 · 136 阅读 · 0 评论 -
用excel模拟栈还是挺方便的
123123123123123123123123123123123123123123原创 2022-08-19 11:21:56 · 264 阅读 · 0 评论 -
vs2012报错 warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
解决办法原创 2022-08-18 11:07:16 · 205 阅读 · 0 评论 -
C++ vector
因此vector并不会在每一次有数据插入的时候就重新分配数组,vector会多分配一些多余的空间以适应潜在的数组增长,也就是说vector的容量(capacity)可能会大于其真正存储的元素个数(size)vector的内部实现是动态分配的数组,在有新数据插入的时候,可能需要重新分配数组,然后将原来数组中的数据全部迁移到新分配的数组中,这么做相当耗费性能。他和数组一样使用连续存储空间,因此可以使用索引或者指针偏移量来访问其中的元素。不同的是,他的长度可以变,而数组的长度是固定的。简单来讲就是变长数组。...原创 2022-08-16 23:33:00 · 249 阅读 · 0 评论 -
APC12345
在RS5(我不知道RS5是啥意思,查了一下,就是类似于版本号之类的东西)中引入了一个叫做特殊APC的机制,可以强制在线程执行到一半的时候的执行APC。如果把一个普通的用户APC queue到safe进程中,那么这个APC永远都不会执行,因为safe并不会进入到Alertable state。微软官方文档说了,当一个用户模式的APC被存到线程的队列中后,只有当该线程进入到alertable state之后才会执行该APC。假设现在有两个进程,一个叫做safe,一个叫做malicious。......原创 2022-08-16 17:36:00 · 159 阅读 · 0 评论 -
在内核调试时输出调试信息
前面那两个0不用管,后面直接按照printf的用法使用即可。在驱动代码中使用如下代码。原创 2022-08-15 17:08:21 · 83 阅读 · 0 评论 -
x64汇编代码测试 用户模式和内核模式
参考下面这两个项目。原创 2022-08-10 15:16:21 · 127 阅读 · 0 评论 -
windows内核驱动开发
把vs生成的三个文件全拖到测试机上,然后把开发机上的devcon.exe拷到测试机,注意位数,要和测试机一样,我刚才就在32位测试机上搞了半天的64位驱动。sys是驱动文件,inf是安装驱动的时候用的文件,cat是installer用于验证驱动的测试签名的文件。本来VS是有自动化部署的功能的,但是我玩不明白,所以只能用笨方法,构建完成后在项目目录下可以找到以下几个文件。然后执行如下命令进行安装即可。.........原创 2022-08-09 17:19:04 · 683 阅读 · 0 评论 -
typedef和#define的花里胡哨的用法
代码】typedef和#define的花里胡哨的用法。原创 2022-08-09 14:50:40 · 119 阅读 · 0 评论 -
C 在函数声明前加typedef
一开始看感觉很奇怪,不知道为啥前面要加一个typedef,后来网上搜了搜,看到下面这个问答。顿时就明白怎么回事了,我来自己举个例子。在学习驱动开发的时候看到下面这种代码。原创 2022-08-09 14:05:15 · 410 阅读 · 0 评论 -
Practical+Reverse+Engineering第三章List习题
http://144.34.164.217/practical-reverse-engineering-notes-part-i.htmlhttps://144.one/practical-reverse-engineering-notes-part-ii.html将要删除的节点后面的节点叫做EntryC将要删除的节点叫做EntryB模式:取rbx的值给rax,取rax的值给rcx,将rcx写入rbx,将rbx写入rcx+8其中rbx为ListHead,rax为要删除的节点,rax是要删除的节点的F原创 2022-08-06 01:42:58 · 670 阅读 · 0 评论 -
C字符串数组反转
代码】C字符串数组反转。原创 2022-07-31 00:47:48 · 264 阅读 · 0 评论 -
线程同步 控制执行顺序
线程同步,两个线程,一个线程A,一个线程B,怎么能让AB顺序执行-例如都是A执行完B再执行。偶然在网上看到一道面试题。原创 2022-07-29 15:19:20 · 103 阅读 · 0 评论 -
linux套接字之端口复用
这样不同线程中的socket就可以使用自己的套接字来调用accept函数来接收客户端数据,在这之前,多线程服务器应用中所有的线程都是用同一个套接字调用accept。值得注意的一点是,连接的分配是由一个四元组确定的,即clientIP、clientPort、serverIP、serverPort。对于以前的单套接字方式,如果来自客户端的流量特别大,比如说每秒40000个连接,是完全承受不住的,响应速度会变得非常慢。另外一个弊端就是,在多线程应用中,所有的线程一般都通过如下的循环来接收来自客户端的连接。...原创 2022-07-24 20:55:38 · 539 阅读 · 0 评论 -
linux中的信号量
我们这里只讲解二进制信号量,也就是信号量只有两种状态,0和1我们这里讲解信号量在线程同步中的作用。原创 2022-07-24 20:05:50 · 271 阅读 · 0 评论 -
CMake入门教程
使用CMake构建一个HelloCMake程序。原创 2022-07-21 22:50:13 · 376 阅读 · 0 评论 -
C语言之pthread_join
是一个阻塞函数,接受两个参数,一个是线程id,另一个是存储返回指的双重指针pthread_join函数会一直阻塞直到线程id对应的线程结束,用法如下:可以看到,我们在线程回调函数中,调用pthread_exit,将arg作为参数传入,最后在thread_join函数中我们可以获取到线程的退出状态......原创 2022-07-10 16:17:08 · 1813 阅读 · 0 评论 -
搞清楚C语言的网络函数族hton ntoh 以及大小端记忆法
今天要说的就是下面这几个函数// 之前看这个函数的时候总是记不住该用哪个,因为他们的名字都太相近了// 现在在这里说明一下,这个函数的名称可以被分为四部分// h to n s// h代表host,n代表net,s代表类型为unsigned short,to就不用说了,就是英文单词to// 所有htons意思就是将一个unsigned short的值从本地序转为网络序// 本地序可能为大端也可能为小端,但是网络序一定是大端// 转换完成后,返回值给了sockaddr_in结构体的sin_por原创 2022-07-09 16:47:07 · 1626 阅读 · 0 评论 -
驱动开发——HelloWDM驱动
hellowdm.hhellowdm.cpp原创 2022-07-04 16:50:05 · 178 阅读 · 0 评论 -
驱动开发——第一个HelloDDK
helloddk.hhelloddk.cppsource原创 2022-07-04 11:14:28 · 215 阅读 · 0 评论 -
天书夜读笔记——反汇编引擎xde32
仅针对32bit程序这个反汇编引擎包含三个文件ctrl+f搜索获取xde.h源代码ctrl+f搜索获取xde.h源代码ctrl+f搜索获取xde.h源代码可以自己进行编译xde.c搜索我xdetbl.h搜索我xde.h搜索我原创 2022-06-24 12:43:41 · 326 阅读 · 0 评论 -
天书夜读笔记——深入虚函数virtual
先把之前的MyDriver类中的虚函数给实现一下build之后扔到ida中原创 2022-06-23 17:00:04 · 103 阅读 · 0 评论 -
将vscode变成C++ IDE
受让人若若若若若若若若若若若若若若若若若若若若原创 2022-06-23 09:01:26 · 229 阅读 · 0 评论 -
C语言 本地套接字这个审核也不给我通过,老规矩base64
友链用于本地进程间通信gcc 1.c -o 1 -lpthreadctrl+f搜索服务端代码和客户端代码获取代码斜体样式服务端代码:// 、、使用内存映射可以拷贝文件/*对原始文件进行内存映射创建一个新文件把新文件的数据拷贝映射到内存中通过内存拷贝将第一个文件的内存映射区拷贝到第二个文件的内存映射区释放资源*/// 匿名映射,不需要文件实体来进行内存映射// 只能用于有血缘关系的进程间通信#include <sys/mman.h>#include <pth原创 2022-05-12 17:38:36 · 233 阅读 · 0 评论