自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 Leetcode 101 Symmetric Tree 对称二叉树

递归求解

2019-04-27 16:44:10 217

原创 LeetCode 121 Best Time to Buy and Sell Stock 买卖股票的最佳时机

方法一    方法一是《算法导论》上最大子数组一节介绍的方法。虽然也是线性时间,但是在构造与前一天的价格差这个步骤多花了时间。方法二    方法二是题解里介绍的方法。如《算法导论》上所讲,不一定是最低价买入,也不一定是最高价卖出。想到的方法是穷举买入卖出的时间 (i,j)(i,j)(i,j),但时间复杂度是 O(...

2019-04-23 16:11:34 182

原创 LeetCode 373. Find K Pairs with Smallest Sums 【优先队列】

优先队列    堆的一个常见应用是作为高效的优先队列。优先队列是一种用来维护维护由一组元素构成的集合 SSS 的数据结构,其中的每一个元素都有一个相关值,称为关键字。一个最大优先队列支持以下操作:INSERT(S,x)INSERT(S,x)INSERT(S,x): 把元素 xxx 插入集合 SSS 中。MAXIMUM(S)MAXIMUM(S)MAXI...

2019-04-21 14:21:01 546 1

原创 堆排序

堆    (二叉)堆是一个数组,它可以被看成一个近似的完全二叉树。树上的每一个结点对应数组中的一个元素。除了最底层外,该树是完全充满的,而且是从左到右填充。heap_size表示有多少个堆元素存储在该数组中。    当根结点下标为0时,结点 iii 的左孩子、右孩子和父亲的下标为:#define LEFT(i) ...

2019-04-21 10:17:10 133

原创 原始套接字发送IP数据报

    IP是TCP/IP协议族中的核心协议。所有TCP、UDP、ICMP和IGMP数据都通过IP数据报传输。IP提供了一种尽力而为、无连接的数据报交付服务。IPv4头部图1 IPv4头部    图1显示了IPv4数据报的头部,各个字段的如下:版本:IP数据报的版本号。IPv4为4。Internet头...

2019-04-16 10:24:30 3639 3

原创 原始套接字发送ARP数据包

什么是ARP协议    ARP协议是Address Resolution Protocol(地址解析协议)的缩写。在局域网中,网络中实际传输的是数据帧,数据帧里面有目的主机的MAC地址。但这个目的MAC地址是如何获取的呢?就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送数据帧之前将目标IP地址转化成目标MAC地址的过程。ARP协议的基本功能就是通...

2019-04-14 10:42:29 4702 1

原创 KMP算法

KMP算法    在朴素字符串匹配算法中如果某次匹配失败,则每次把字符串的指针回溯到最开头,这造成了效率低的后果。KMP算法是利用要匹配的模板字符串自身的信息来进行比较,进而移动模板字符串的指针。 图1    如图1所示,在ababa已经匹配的情况下,下一字符不匹配的时候,发现aba是ababa的真后缀同...

2019-03-28 13:21:00 182

原创 DNS协议抓包分析

Wireshark抓包    只需通过浏览器访问一个网页,然后在Wireshark里过滤DNS协议。解析解析    DNS有两种报文,分别是查询报文和回答报文。它们的格式相同。查询数据包Domain Name System (query)Transaction ID: 0xfe27Flags: 0x010...

2019-03-02 14:40:30 5609

原创 栈溢出实践(2)

    在之前《栈溢出实践》里,所有地址都是现场获得并填入的,这篇进行一点改进。获取’JMP ESP’指令    函数调用完之后,栈相较于调用之前都是平衡的,栈帧指向保存返回地址的下一帧。如果我们将返回地址指向‘jmp esp’指令,并且在保存返回地址的下一帧起始处填入代码,就无需定位运行代码的起始地址。&nbs...

2019-03-01 15:33:41 231

原创 遍历导出表

1.通过DOS头部找到PE头部    DOS头部的数据结构如下:_IMAGE_DOS_HEADER+0x000 e_magic : Uint2B+0x002 e_cblp : Uint2B+0x004 e_cp : Uint2B+0x006 e_crlc

2019-02-28 13:19:17 708

原创 DHCP协议抓包分析

DHCP协议操作Wireshark抓包Windows系统,输入命令来断开连接:ipconfig /release再输入命令恢复连接:ipconfig /renew期间可用wireshark捕获到DHCP数据包。1.DISCOVERBootstrap Protocol (Discover)Message type: Boot Request (1)Hardware type...

2019-02-26 15:21:44 1408

原创 获取DLL的基地址

(1)首先通过段选择器FS在内存中找到当前的线程环境块TEB。(2)线程环境块中找到进程环境块PEB的指针。(3)进程环境块中找到指向PEB_LDR_DATA结构体的指针,其中存放着已经被进程装载的动态链接库的信息。(4)PEB_LDR_DATA结构体中找到指向模块信息LIST_ENTRY链表的头指针。(5)遍历_LIST_ENTRY链表,找到想要获取DLL的基地址。1.TEB&nbs...

2019-02-24 18:11:59 2669 1

原创 TCP连接的建立与终止

图示实验    服务器端原本开启了FTP服务,服务端口号21,IP地址为192.168.182.132。    在客户端执行以下命令:telnet 192.168.182.132 21连接成功后输入quit断开连

2019-02-22 14:55:17 1468

原创 栈溢出实践

实验代码实验环境为Win10,编译工具为VS2017(Release)。#define _CRT_SECURE_NO_WARNINGS#include <Windows.h>#include <stdio.h>#include <string.h>#def

2019-02-21 14:37:57 378

原创 IP分片

实验环境搭建  配置一台虚拟机。本次实验中主机的IP地址为192.168.182.1,虚拟机的IP地址为192.168.182.133。  通过主机ping虚拟机,指令如下:ping -l 3000 192.168.182.133-l 指定包的数据大小为3000字节,使之分片传输。Wireshark抓包第一帧IP层内容如下:Intern...

2019-02-20 14:38:56 1926

原创 IDA修改汇编指令

写一段小程序#include <stdio.h>#include <string.h>int main(){ char password[1024]; while (true) { printf("please input password:\t"); scanf("%s", password);

2019-01-21 18:56:47 29371 3

原创 ARP协议抓包分析

ARP缓存表一、查看ARP缓存表指令arp -a二、删除ARP缓存表指令比如删除接口为192.168.182.128的ARP记录:arp -d 192.168.182.128Windows下也可清空所有ARP条目:arp -d实验环境搭建配置两个虚拟机,IP地址分为192.168.182.128和192.168.182.132。清除与对方相关的APR条目。在192.16...

2018-12-23 15:50:02 2437

原创 牛客-字典序 解题报告 【树】

牛客-字典序 解题报告 【树】题目描述  牛客OJ链接:字典序  给定整数n和m, 将1到n的这n个整数按字典序排列之后, 求其中的第m个数。  对于n=11, m=4, 按字典序排列依次为1, 10, 11, 2, 3, 4, 5, 6, 7, 8, 9, 因此第4个数是2.  对于n=200, m=25,...

2018-10-02 16:27:38 311 1

原创 POJ 2559-Largest Rectangle in a Histogram 解题报告 【笛卡尔树与单调栈】

POJ 2559-Largest Rectangle in a Histogram 结题报告 【笛卡尔树与单调栈】

2018-09-29 15:19:21 580 1

原创 POJ 2368-Buttons 解题报告 【博弈】

POJ 2368-Buttons 解题报告 【博弈】

2018-09-23 13:45:05 492 1

原创 拼凑面额 解题报告 【动态规划】

拼凑面额 解题报告 【动态规划】

2018-09-18 15:25:17 626 1

原创 Github如何绑定域名

Github如何绑定域名第1步:  申请github账号,并建立新仓库,仓库的名字为 用户名.github.io 。我的用户名为DoubleTongTong,所以要新建的仓库名为 DoubleTongTong.github.io 。  我是通过GitHub Desktop

2018-09-17 22:05:02 3454 1

空空如也

空空如也

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

TA关注的人

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