C/C++
程序小黑
这个人很懒,什么都不想说。。
展开
-
C++算法学习记录
1、使用C++ 基于STL库进行箱排序#include <iostream>#include <vector>#include <string>#include <algorithm>using namespace std;void BucketSort(float arr[], int n) { vector<float>* bucket = new vector<float>[n]; for (int i = 0原创 2022-03-23 11:35:38 · 1266 阅读 · 0 评论 -
使用C语言寻找jmp esp的地址
需要加载user32的dll动态链接库,然后通过16进制的0xFF和0xE4来寻找jmp esp的跳转地址。#include <stdio.h>#include <windows.h>#include <stdlib.h>int main(){ BYTE *ptr; int position; HINSTANCE handle; BOOL done_flag = FALSE; handle = LoadLibrary(L"user32.dll");原创 2022-03-22 10:21:05 · 1228 阅读 · 0 评论 -
操作系统:先来先服务算法和最高优先数优先的C语言实现
最近在复习操作系统,有如下知识点:1)进程调度算法:采用os的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。2)每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。3)进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。进程的运行时间以时间片为单位进行计算。4)每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态原创 2022-03-03 13:31:46 · 3536 阅读 · 0 评论 -
C/C++ 基于对勾函数和双曲线实现高效率散列函数,实现真正意义上的减少冲突!!
C/C++ 基于对勾函数和双曲线实现高效率散列函数,实现真正意义上的减少冲突!!本散列函数基于对勾函数和双曲线函数实现。对勾函数图像:双曲线函数图像:散列函数分析通过以上两个函数我们可以制造一个散列函数,符合x2/a2 - y2/b2=1,且a,b值相同。在下面的代码中,我们将会假设a的值为1,b的值为2,且我们要使用散列表,将待操作数43传入其中并获得其索引,可以得到y = sq...原创 2018-10-06 12:10:00 · 50113 阅读 · 0 评论 -
C/C++实现数据结构之图的遍历算法
图形结构是一种在生活以及工业中很常用的数据结构。有着关系明确、运算快捷的优点。但是学习难、入门起点高,对数学能力有很高的要求。图的遍历图的遍历和树的遍历类似。首先这里就不再赘述图的逻辑结构了。有向图和无向图这里就先假设为邻接矩阵表示,直观的体现下图的存储结构的特点。邻接表不过就是有入边和出边来体现图的点集和边集的特点。这两种逻辑结构其实并没有太大的区别。就像树有三种遍历方式一样(前序遍历、中...原创 2018-10-08 09:38:37 · 57123 阅读 · 1 评论 -
散列表的查找和插入算法
散列表查找散列表查找是一种特殊的查找方法,它能够通过对关键字的值快速定位待查找元素的位置。再查找方面,散列表有着极高的效率。但是一个散列表或多或少会存在冲突,为了解决冲突,我们设计了两个方法,一个是开放定址法,另一个就是拉链法。开放定址法又分为线性探查法,二分探查法和双重散列法,就效率而言,双重散列法的效率是最优的,但是其中最为直观的方法还是线性探查法。基本思想使用某种方法在散列表中形成一...原创 2018-10-09 14:14:10 · 50404 阅读 · 2 评论 -
现代计算机内存对齐机制
64位计算机和32位计算机CPU对内存处理的区别64位CPU,位宽为8个字节。(64位/8位/字节=8字节)32位CPU,位宽位4个字节。(32位/8位/字节=4字节)我们假想内存空间是一个二阶矩阵。(事实上内存是一维线性排列的)那么二维数组的列数在64位CPU上就是8字节,在32位CPU上就是4个字节。CPU为了寻址方便,会自动优化内存,来让数据尽量在同一二维数组行中,以减少寻址时间。...原创 2018-11-01 11:08:57 · 41199 阅读 · 0 评论 -
某比赛渗透测试阶段后门
python + C 实现后门首先是模拟VSFTPD2.3.4后门漏洞。漏洞具体情况就不在这里一一分析了==下面直接上代码#!/usr/bin/env pythonfrom socket import *import reimport osimport subprocessHOST = ''PORT = 21BUFSIZE = 1024ADDR = (HOST,PORT)S...原创 2018-11-19 07:33:52 · 36956 阅读 · 0 评论 -
关于FreeFloat 1.0版本的EXP编写
首先使用ODB运行FTP SERVER 1.0带有缓冲区溢出漏洞的程序,然后按下F9让ODB运行我们带有漏洞的程序。我们先使用kali自带的pattern_create.rb这个脚本来生成一串用于测试缓冲区溢出的代码,以便我们在下一步测试缓冲区大小。这里我们所要使用的脚本位于/usr/share/metasplot-framework/exploit/tools下。这个目录下存在脚本patte...原创 2019-02-14 09:30:42 · 1926 阅读 · 0 评论 -
某比赛渗透测试阶段后门的EXP
由于最近有人问我要上次后门的exp,所以我今天就写了一份。使用了python中的pwn模块。没有的小伙伴们可以使用命令安装一下pip install pwn主要思路还是根据后门返回结果来写。使用remote函数来连接后门,具体操作和南邮CTF的PWN题的exp也差不多,只是多了些返回结果而已。需要多做一些操作。我写顺便放出getflag.c的源码,以便各位测试使用。getflag.c#...原创 2018-11-19 20:07:25 · 37264 阅读 · 0 评论 -
使用C++编写基于WEB CGI的后门漏洞
先上代码:#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;stdlib.h&amp;gt;#include &amp;lt;string&amp;gt;using namespace std;int main(){ printf(&quot;Content-Type:text/plain;charset=utf-8\r\n\r\n&a原创 2018-12-11 12:54:52 · 32267 阅读 · 0 评论 -
关于C++字符串中存取中文字符
这里今天在开发过程中遇到了一个小问题,求解决。由于string在C++标准中的定义是(char*)malloc(sizeof(char));已知sizeof(char)的字节大小为1字节。一个中文字符的字节大小为2。这里使用了wstring来存储中文汉字。但是这里需要使用getline(cin,string(xxx))来获取用户输入。这边怎么使用string来做。考虑到改了数据类型很多都要...原创 2019-02-12 10:04:32 · 6126 阅读 · 0 评论 -
C++泛型建立数据结构类
分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/xiaohei由于一些比赛耽误了太久,最近又拿起了数据结构做起了复习。写了一个类#include <stdio.h>#include <string>#include <stdlib.h>#incl...原创 2019-07-03 11:05:15 · 525 阅读 · 0 评论 -
自动化哈夫曼编码
#include <stdio.h>#include <stdlib.h>#include <string>/* 作者:CSDN程序小黑 QQ:1152193204 日期:2019-9-29*/#define MIN 32 //ASCII树最小编码范围#define MAX 135 //ASCII树最大编码范围#define ...原创 2019-09-29 09:52:13 · 440 阅读 · 0 评论 -
C源代码:希尔排序
#include <stdio.h>//希尔排序--优化过的插入排序void sort(int* arr, int len){ int mid = len; int gap = len; do{ mid = mid / 2; if (mid == 0) { gap = 1; } else { gap = mid; } for (int ...原创 2019-10-08 10:10:42 · 446 阅读 · 0 评论 -
C++基于STL库实现箱排序
C++基于STL库实现箱排序箱排序简单介绍:箱排序是一种分配排序方法。这是一种不需要比较的排序方法,可以让时间复杂度降为一线性阶O(n)。常用的分配排序有箱排序和基数排序。而基数排序是基于箱排序基础上实现的,所以这里着重介绍箱排序。箱排序的基本思想是:设置若干个箱子,依次扫描待排序的记录R[0]、R[1]、R[2]……R[n-1],把关键字等于K的记录全部装入第k个箱子里,然后依次将各非空的...原创 2018-09-20 14:28:08 · 50099 阅读 · 0 评论 -
linux下的栈溢出实验
linux下的栈溢出实验关于操作系统的ASLR地址随机化首先我们在实验之前需要了解以下ASLR机制。即linux平台下的地址随机化机制。它将进程中的某些内存空间地址进行随机化来增大入侵者预测目的地址的难度。从而降低被成功入侵的风险。当前Linux、Windows等主流操作系统都已经采用该技术。linux下的ASLR分为0,1,2三级,用户可以通过一个randomize_va_space进行等...原创 2019-02-14 09:30:52 · 1437 阅读 · 0 评论 -
C/C++实现DNS劫持
C/C++实现DNS劫持什么是DNS?每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议的功能。 主机名到IP地址的映射有两种方式: 1)静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用; ...原创 2018-09-09 11:20:57 · 54925 阅读 · 7 评论 -
基于C/C++socket通信的后台木马程序
基于C/C++socket通信的后台木马程序什么是socket通信?网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。 建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或...原创 2018-09-09 14:58:56 · 53833 阅读 · 7 评论 -
C/C++泛型编程实现数据结构之线性表
C/C++泛型编程实现数据结构之线性表泛型编程与面向对象编程的目标相同,即使重用代码和抽象通用概念的技术更加简单。但是面向对象编程强调编程的数据方面,泛型编程强调的是独立于特定数据类型。侧重点不同。template &lt;typename DataType,int MaxSize&gt;class Liner_table {private:public: DataT...原创 2018-09-12 09:52:28 · 52430 阅读 · 0 评论 -
C/C++区块链实现代码优化
C/C++区块链实现代码优化源地址为:https://blog.csdn.net/qq_27180763/article/details/82588305#include &amp;lt;iostream&amp;gt;#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;windows.h&amp;gt;#include &amp;lt原创 2018-09-12 15:35:17 · 52106 阅读 · 0 评论 -
C/C++泛型编程实现数据结构之队列
C/C++泛型编程实现数据结构之队列早在曾经一篇博文中,我曾介绍过顺序存储和链式存储的区别和好处,博文传送门:https://blog.csdn.net/qq_27180763/article/details/82683029本章将讲诉: 1. 队列的逻辑结构刨析 2. 顺序存储结构下的循环队列 3. 链式存储结构下的循环链队列 4. C/C++泛型编程类模板实现队...原创 2018-09-17 08:39:46 · 53200 阅读 · 0 评论 -
基于C实现数据结构之二叉排序树
基于C实现数据结构之二叉排序树树表查找树表查找是对树形存储结构所做的查找。树形存储结构是一种多链表,表中每个节点包含有一个数据域和多个指针域。每个指针指向一个后继节点,树形存储结构和树形结构时完全对应的,都表示一个树形图,只是用存储结构中的链指针代替逻辑结构中的抽象指针罢了,因此,往往把树形存储结构和树形逻辑结构统称为树结构或树。 什么是二叉排序树二叉排序树又称为二叉查找...原创 2018-09-17 12:09:19 · 53213 阅读 · 0 评论 -
C/C++实现区块链(上)之加密算法(原创算法,转载必究)
C/C++实现区块链(上)之加密算法(原创算法,转载必究)本算法基于椭圆标准方程、线性代数、数据结构,纯属自制。仅供学习参考,不得用于商业用途。首先了解下椭圆标准方程:我们先模拟下长轴为Y轴时(即焦点F在Y轴上,F的横坐标为0的情况),然后根据椭圆的定义,得到椭圆上任意一点F,到焦点F1,F2的距离|MF1|+|MF2|是一个常数。,这个时候连接MF1和MF2。然后很容易得...原创 2018-09-10 12:54:45 · 55457 阅读 · 6 评论 -
C/C++实现区块链(中)之算法实现(原创代码,转载必究)
C/C++实现区块链(中)之算法实现(原创代码,转载必究)上一篇文章我们讲述了区块链实现的基本算法原理,传送门https://blog.csdn.net/qq_27180763/article/details/82588136 这一节我将用C/C++技术来和大家分享区块链技术中的加密算法实现。 1、矩阵类实现class Martix {public: stat...原创 2018-09-10 13:05:06 · 55570 阅读 · 2 评论 -
C/C++实现区块链(下)之区块链实现(原创代码,转载必究)
C/C++实现区块链(下)之区块链实现(原创代码,转载必究)算法原理传送门:https://blog.csdn.net/qq_27180763/article/details/82588136 算法实现传送门:https://blog.csdn.net/qq_27180763/article/details/82588194看了上面的算法,相信大家基本可以猜到,相对于比特币的...原创 2018-09-10 13:20:47 · 62510 阅读 · 15 评论 -
C/C++泛型编程实现数据结构之广义表
C/C++泛型编程实现数据结构之广义表广义表是线性表的推广,又称列表。线性表的元素只限于原子项,即每个数据元素只能是一个数或一个记录,如果放松对线性表元素的这种限制,允许他们自身具有结构,那么就产生了广义表。广义表是一种多层次的线性结构,像是一颗倒扣的树,实际上,这也算是一种树形结构。广义表不仅是线性表的推广,也算是树结构的推广。广义表的存储结构广义表的元素本身可以具有结构,这是一种带有层...原创 2018-09-18 09:23:58 · 52770 阅读 · 1 评论 -
C/C++泛型编程实现数据结构之单链表(附操作系统原理深度刨析)
C/C++泛型编程实现数据结构之单链表线性表的链式存储结构线性表的顺序存储结构的特点是:在逻辑上关系相邻的元素在物理上的位置也是相邻的,因此顺序存储结构的线性表随机存储的时间复杂度为O(1),因为CPU不比花费过多的时间在内存寻址中,数据排列在内存中是紧凑的。但是正因如此,导致顺序存储的插入和删除操作需要一一移动元素来实现,最坏情况下的时间复杂度可以达到O(N^2)当经常需...原创 2018-09-13 09:42:52 · 51790 阅读 · 0 评论 -
C/C++实现树形结构之二叉树
C/C++实现树形结构之二叉树树的概念树形结构是一类非常重要的非线性数据结构,树中节点的位置具有明确的层次关系。并且结点之间有分支,非常类似于真正的树。而我们这里着重讲述的是二叉树。二叉树是树形结构的一种重要的类型,在实际应用中有着非常重要的作用和意义。二叉树是n个节点的有限集合,他的每个节点至多只有两棵子树。当然也可以是空集。或者是由一个根节点及两棵互不相交的分别成为这个根的左子树和右子树...原创 2018-09-19 07:46:45 · 54380 阅读 · 5 评论 -
C语言实现数据结构之归并排序
C/C++实现数据结构之2路-归并排序归并排序和交换排序、选择排序的思想不一样,归并的含义是将两个或两个以上的有序表组合成一个新的有序表。假定待定排序表含有n个记录,则可以看成是N个有序的子表。每个子表长度为1,然后两两归并,得到N/2个长度为2或1的有序表。再两两归并。如此重复,直到获得一个长度为n的有序表为止。这种方法称为2路归并排序函数实现:merge()函数的功能是将两个有序表归并为...原创 2018-09-19 09:48:21 · 53466 阅读 · 6 评论 -
C/C++泛型编程实现数据结构之栈
C/C++泛型编程实现数据结构之栈栈是访问受限的线性表,遵循了后进先出的原则,只允许在栈顶进行操作。这里栈是一种数据结构。但是我们仍然可以对其进行存储结构上的划分。在这里我们会把它分成顺序存储结构和链式存储结构两种方案进行划分,也就是说这里我们会编写两个模板类来实现栈的基本操作。栈的基本操作判栈满(顺序存储结构)判栈空入栈出栈取栈顶元素初始化栈顺序栈在...原创 2018-09-14 10:37:05 · 53094 阅读 · 0 评论 -
C/C++实现windows下的映像劫持(下)之代码实现
C/C++实现windows下的映像劫持(下)之代码实现上一篇文章我们给大家阐述了windows下的映像劫持的原理。本篇文章我将来和大家分享,Windows下如何使用C/C++实现恶意软件修改注册表从而实现映像劫持。 实现映像劫持所必需的头文件有:#include &amp;amp;amp;quot;shlobj.h&amp;amp;amp;quot; #include &amp;amp;amp;amp;lt;iostream&a原创 2018-09-09 10:35:01 · 52073 阅读 · 0 评论