自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Python编程-爬虫原理与简单实践

一个简单的爬虫是比较初级入门并且也十分有实用价值的东东,例如可以获取一下每天的天气,喜欢看电影的可以爬一爬电影的榜单,复杂一点的可以根据已有的电影爬取封面、信息等。爬虫就是一个这样的东西,可以实现批量的获取我们想要的信息,取代了手工的点点点和选择等操作。 开题 我们知道html网页是由标签...

2019-11-09 11:54:28 184 0

转载 逆向与破解-操作数定位方式实例

汇编指令时逆向的基本,我们看到的最基本的都是汇编指令,存在部分反汇编工具支持将代码转换为类C代码。 前文已经转载过一篇涉及操作码和对应的功能的文章,这次则是操作数的定位方式。 以下为原文。 计算机只容许使用bx、si、di、bp寄存器做间接和相对寻址 其中bx为基址存储器,si、di为变...

2019-11-01 17:34:53 89 0

转载 逆向与破解-windows异常处理机制

以前看到过的很棒的一个讲解SEH的,非常的详细和简单易懂,不需要特别纠结具体的结构和处理的方法,初期对过程有一定的掌握就可以。以下为原文 深入解析结构化异常处理(SEH) - by Matt Pietrek 尽管以前写过一篇SEH相关的文章《关于SEH的简单总结》, 但那真的只是皮毛,一直对W...

2019-11-01 16:46:57 190 0

转载 逆向与破解-汇编指令

在转载之前补充两句,在汇编指令中几个大类是计算指令,转移指令和标记指令。 其中计算是大头,包括加减乘除移位,与或非,异或等,其次是多种跳转方式,根据计算结果导致的标志位变化不同,跳转也有多种方式,以下是几个有关的提示。 不是所有的寻址方式都可以用到每个指令中,有很多指令仅支持部分的寻址方式。 ...

2019-10-31 18:09:31 153 0

原创 逆向与破解-基础理论

虽然很早就喜欢想要学习,但最早接触逆向的时候还是研一,那个时候的一本《加密与解密》真的给了我特别大的帮助,它的基础讲的通俗易懂,小例子程序也很到位,可以让新手或有点基础的迅速掌握基本的理论和工具使用。 回过头来现在已经搞了将近以一年多的恶意代码检测和WEB安全相关的东西,不过逆向并没有落下,因为...

2019-10-31 17:53:52 273 0

原创 网络与安全-总结归纳

这次是想梳理梳理网络与安全中的一些基本概念和涉及的东西,不得不说这是一个非常大的框架,涉及的东西是在是太多,一方面是自己查缺补漏一下,另一方面是清晰一下脉络。为了不显得那么杂乱,简单将其分为三个小部分:网络通信,网络资源与网络安全。(该篇文章不会描述具体的内容,仅是归纳一下已知的关键的点,因为是临...

2019-10-29 17:26:56 174 0

原创 word技巧-分节符和连续页码,页眉页脚加线

word的页码也是一个让人头疼的地方 需求: 1. 在word页脚处显示连续的页码 2. word中需要分为多段,每段都有自己的页码序号 在word中有一个叫做分节符的占位符,可以实现序号分节 它的作用比分页符大一些,在分页的同时可以开始新的序号 对于删除行开始的回车 或者是分...

2019-10-25 20:47:33 1095 0

原创 word技巧-大纲与目录

这个月在忙毕设,就暂时没有更新。我发现md真的是太幸福了,很多同学也用latex写论文,而word虽然方便,但是一遇到问题真的是让人抓心挠肺。根据近来一段时间使用word的遇到的问题和解决办法,特意写下这篇笔记。 大纲 word的大纲大家并不陌生,它是用来规定段落等级的。 说白了也就是哪...

2019-10-25 19:42:10 714 0

转载 语言处理方法-Word2Vec详解

NLP之——Word2Vec详解 2013年,Google开源了一款用于词向量计算的工具——word2vec,引起了工业界和学术界的关注。首先,word2vec可以在百万数量级的词典和上亿的数据集上进行高效地训练;其次,该工具得到的训练结果——词向量(word embedding),可以很好地度...

2019-10-05 10:58:52 176 0

原创 c# 防止闪烁之双缓冲和虚拟模式

在C#界面编程中,通常在大量的绘制和添加控件的过程中出现闪烁的问题,常见的闪烁的原因很容易理解: 当我们添加控件时触发WM_PAINT消息,导致窗体需要重绘。步骤大致如下: 使用窗体的背景色擦除窗口表面 绘制窗体图像 绘制其上的控件和图像 当我们的主窗口的内容或大小改变,都会触发Pain...

2019-10-05 09:50:23 173 0

原创 数据结构与算法-初识树和图

对于很多人来说,字典和数组是非常熟悉也经常用的数据结构。链表也还算比较常用。 他们的特点如下: 1.字典和数组都是线性结构 2.字典和数组,链表都是按照位置来存储数据的,例如字段是通过哈希计算下标,数组是使用下标,链表则是一个一个的链接在一起 3. 字典和数组,链表都是实现的几乎都是一对一...

2019-10-02 12:16:27 245 0

转载 Windows平台shellcode编写原理

在漏洞利用代码也即是shellcode的编写中,存在诸多的技巧。尤其是对于windows而言,库和函数的定位都需要手动获取,不像linux使用系统调用号那样的方便。 这是我看到一个写的非常详细,非常通俗易懂的教学文章,详细的讲解了开发一个windows下shellcode的整体流程,如何定位库和...

2019-09-26 16:42:46 247 0

原创 正则表达式-进阶之定位与断言(python使用re模块及注意事项)

换一个高级点的在线工具(http://tool.chinaz.com/regex/),包含常用匹配和着色显示,很不错。 python中的调用方法 import re txt = u'<a href="//csdn.net/488732" title=...

2019-09-25 20:10:17 445 0

原创 正则表达式-初级使用

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。 正则表表达式的用途多在于数据的筛选,匹配,提取,举例子:文件夹下众多文件的过滤,提取网页标签内容,匹配输入...

2019-09-24 20:36:50 222 0

原创 Python编程-pypyodbc无驱动和无法打开注册表等错误的解决办法

在使用pypyodbc过程中,可能发生以下几个错误,解决办法记录如下: 1. 没有Microsoft Access Driver(*.mdb)等驱动 网上常见的解决办法是创建数据源,使用控制面板-管理工具-数据源管理器添加和创建数据库 打开之后,添加对应的驱动和数据库就可以 选...

2019-09-23 19:35:49 369 0

原创 Python编程-连接和操作mdb accdb数据库,pypyodbc的安装和使用

对于我们需要存储服务的编程来说,数据库是一个可靠的伙伴。数据库提供了非常便利的存储功能,并且可以通过sql语句快捷的增删改查。在python中有多种方法可以操作数据库,例如MySQLdb,pymysql,pypyodbc等,其实操作起来都差不多。 一般操作数据库的流程为: 我们连接后打开数...

2019-09-23 18:55:40 1039 0

原创 数据结构与算法-散列表冲突的解决办法

我们上文以字典作为例子,描述了散列表这种结构。 它以函数H(哈希函数)作为纽带,连接一对键值,通过H(键)计算得出数组的下标用于存储键值对。 它的优势是可以绑定键值,允许我们通过键来访问特定的值,并且寻找的复杂度不精准的来说是O(1)。 但是我们发现了问题,我们的数组是有限长度的,但是输...

2019-09-20 20:30:12 242 0

原创 数据结构与算法-链表

链表 链表也是一个非常基本的数据结构,跟数组有很大的不同。 我们知道数组是占用连续内存的线性结构 ADD就是该数组的首地址,访问元素可以使用ADD【下标】。然而我们可以发现数组占用连续的空间,需要扩容的时候需要开辟更大的连续空间然后复制过去,并且当我们移除 插入元素时,需要遍历数组将元素...

2019-09-14 16:40:38 218 0

原创 数据结构与算法-散列表

散列表 我们前面已经说过数组这个数据结构,他非常的方便,使用连续的内存和下标来操作元素。 但是这难以满足一些其他的需求,比如我们需要将两个对象进行一一对应,没错我们常用的字典就是其中的一种类型。 字典这种结构使用键(key)---值(value)的对应关系,我们可以根据键获得对应的值。 ...

2019-09-14 16:40:29 224 0

原创 Python编程-随机数和随机数组生成, list和array的互相转换

在python编程中,随机数是一个某些时候非常有用的功能。 随机数的产生涉及numpy.random模块和random模块 本文可能无法涉及所有的情况,但是常用的情况都会简单说一下: 首先是random模块,注意引用import random 1 随机单个数字 随机范围的整数 上界和...

2019-09-09 18:06:38 731 0

原创 Python编程-当前时间的获取,显示和计算操作

python一般来说随意搞点小东西是不需要涉及到时间的,一般用到的地方可能是 界面显示或者提示 文件保存的名字或日志内容 Python的时间可以按照自己的任意格式要求进行调整,不仅如此它还支持日期之间的计算。 相关库 import datetime 演示的程序如下: import ...

2019-09-07 20:21:08 357 0

原创 Python编程-五种常用的字符串连接方式

字符串是我们在python中非常常用的,输入输出,显示,保存等都会用到。在Python中支持多种字符串的拼接方式,甚至还有意想不到的乘法方式,我们接下来逐个演示这些方法 1. 直接+ str1 = "Hello " str2 = "World"...

2019-09-06 09:54:08 220 0

原创 数据结构与算法-队列

今天可能要多说几句,因为又遇到点事有点感触哈。 出去开会结果讲的大多数都是个我的专业无关的专题,专家讲的那些名词别说不了解,听都没听过。我就突然联想到平时的学习,既然我们作为某个领域的人,就一定要了解领域里的相关专业术语。要不无论是跟其他人交流,或者是出去学习,人家拿出来一个术语,咱还不知道就很...

2019-09-06 09:32:49 199 0

原创 python界面编程-PyQT5界面编程简单原理

PyQT5作为一个界面库,使用起来确实很方便,它是类似于基于对象的编程方法,通过创建对象,控制对象属性,绑定事件等完成一个完整的界面设计 我们已经看过他的设计器,再次介绍一下: 左侧的控件时现成的,可以拖到主界面直接用 控件可以通过属性控制大小,位置,图标,文字等。 对于这种面向对...

2019-09-03 23:40:10 1094 0

原创 python界面编程-PyQT5安装和使用 界面设计器

按道理来说python不应该拿来设计界面,本来他也不是这个擅长的,完全可以用WPF等使用python封装代码,但是也是实际用到了,就想一整套下来全用python。 据了解主流的界面库有pyqt和tkinter,但是看pyqt内置界面编辑器,控件布局很方便,所以这里就记录一下。 我们分四个步骤说...

2019-08-31 20:58:45 498 0

原创 超级简单的方法 实现在python的一个py脚本中调用另外一个py脚本中的类或函数

也是前两天遇到的问题,一般来说遇到这样的问题是像我似的,把代码都写到一个文件里,后来做别的东西跟它衔接的时候发现需要用里面的函数,但是又觉得从这个文件拷贝函数到那个文件太low了...而且不利于维护和修改,所以就上网查了查 这个跟调用python库不一样,python库时直接安装在pyt...

2019-08-29 20:12:16 1154 0

原创 数据结构与算法-栈

数据结构的数组已经简单的说了,本来中间应该是链表的,但是还是决定先说栈的知识,先将一整套的流程理一遍,然后在切换到链表上。 数据结构其实可以分为物理结构和逻辑结构,像数组由于是在内存中连续存储的,所以支持下标访问,这就是物理结构,因为该特性是由自身的物理存储方式而带来的。 那么逻辑结构就大...

2019-08-28 19:19:22 270 0

原创 数据结构与算法-排序算法(鸡尾酒排序-特殊情况的排序方法)

说起来排序,始终会出现这样的问题 这是一个普通的数组,如果我们想从小到大排序的话,无论是简单的选择排序还是冒泡排序都会有额外的工作。 举例子,使用冒泡排序: 第一轮 显然现在已经是有序的了,但是冒泡排序还需要进行七轮,虽然不会移位,但是还是会逐个比较,这明显是额外的,多余的工作。 ...

2019-08-27 19:56:49 263 0

原创 数据结构与算法-数组的插入、删除、与查找(高效的二分查找法)

在前文我们简单的聊了聊数组的初步的原理,数组是如何获取元素的,数组又是如何在内存中存储的。除此之外就是我们今天要说的,数组的一些应用方式。 我们可能各种语言常见一些函数 int[] array (这里以int数组举例子) 插入函数 array.Insert(int index,int item...

2019-08-26 19:57:25 460 0

原创 数据结构与算法-使用下标访问的数据结构(数组)

这个是正好是前面讲了一些排序算法,也用到了不少次数组了,所以就在这里想直接说一下。 数据结构有很多,每个都有自己的优点,因为每一个结构的产生都是因为实际的需要。学习数据结构需要,需要牢牢记住一句话: 结构决定功能 每一种结构的特点,决定了他们的用途,功能。 还是用java举例子,我么常用的...

2019-08-22 18:56:00 262 0

原创 数据结构与算法-排序算法(计数排序)

这其实是一个"投机取巧"地方法,应用的范围不是那么宽,还没有涉及到更深的思想,所以就放在前面来讲。 我们的排序问题实际上就是大的跟小的按照顺序输出。 排序的结果很显然是 1235677 思考这样一个问题,我们输出的实际上就是数字的大小和数目。 我们事先可以维护一个...

2019-08-21 19:54:36 277 0

原创 数据结构与算法-时间复杂度与空间复杂度

这两个词是编写算法时需要考虑的,在实际的场景中,可能老板就跟你说他要实现一个什么功能,让你实现一个O(n)的算法,此时我们是这个表情?? 一个算法中需要考虑到的有两点,一个是执行的速度,另外一个则是执行占得资源。 距离子来说查询数据库,然后将查到的数据进行排序 我们的实现:先获取所有数据,然...

2019-08-21 18:53:40 231 0

原创 数据结构与算法-排序算法(选择排序)

冒泡排序真的是太烦了,需要一直两两比较,将最大的浮动到上面的位置去,可能有人在想,我为什么不记住最大或最小的位置,遍历完成之后只需要交换最大或最小的和对应的位置不就可以了,省去了来回串来串去的烦恼。 确实是这个道理,这个方法就是选择排序。 我们使用例子演示一下 首先从第一位遍历 我们...

2019-08-20 20:07:13 282 0

原创 数据结构与算法-排序算法(冒泡排序)

排序是一个我们经常遇到的问题,这也是一个非常基本的问题,例如我们平时大小个站队?搜索数据之后的排序,常见的还是数字的排序等等(该图像素材来源于网络) 那么想象我们站队的时候是怎么排序的,来时看到谁最高就让谁站到第一位,然后再找第二高的,以此类推。我们看出高低也是互相比较得出的,计算机也可以使用...

2019-08-19 20:22:40 241 1

原创 数据结构与算法-为什么要学数据结构和算法(开篇)

最近的发论文和毕业耽误了一段时间,不过并没有停止学习,这段时间学习了小灰漫画算法和网络安全的一些书籍。以前的我总是浮于表面(不是说我浮躁),看到什么东西或者有什么想法,就会想如何用编程实现这么一个目标。这么长时间走过来,虽然这个语言那个语言的学着,然后造出来点有用的东西,最后才发现这些其实都是弯路...

2019-08-19 18:18:12 310 2

原创 Java-第六章 异常处理

编程执行过程中很可能出现错误,比如文件不存在,除以0等问题都有可能影响程序的正常运行导致非常规终止,通常将可能出现异常的语句放入try{}语句中,将出现错误后需要执行的语句放入到catch{}语句中,将无论是否发生异常都要执行的语句放在finally{}语句中。 当程序执行出现异常的时候,系...

2019-05-31 23:20:47 215 0

原创 Java-第七章 多线程和异步操作

先说大概有三种方法,一个是继承thread类 一个是Runable接口 另一个是继承继承Callable接口。 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。但其实从理解来讲,如果我们需要做很多的事情时,一个事情耗时,那么其他的任务就需要等待,...

2019-05-31 23:16:42 993 0

原创 Java-第六章 异常处理

编程执行过程中很可能出现错误,比如文件不存在,除以0等问题都有可能影响程序的正常运行导致非常规终止,通常将可能出现异常的语句放入try{}语句中,将出现错误后需要执行的语句放入到catch{}语句中,将无论是否发生异常都要执行的语句放在finally{}语句中。 当程序执行出现异常的时候,系...

2019-05-31 23:12:22 59 0

原创 linux vscode 安装与配置 简单的程序例子

linux vscode 安装与配置 简单的程序例子 关于vscode 这里说三个要点 (1)下载与安装 (2)插件 (3)编译配置 下载与安装 首先去官网下载文件 https://code.visualstudio.com/docs?dv=linux64 有32位和64位版本...

2019-04-28 08:55:29 20426 4

原创 vs创建c语言项目

vs创建c语言项目 已知用c# 做一些简单的开发,以前虽然也捅咕过C和C++,但是好久不上手了,现在用VS都不知道怎么创建C项目。 首先打开VS程序,选择新建一个项目 然后在里面选择C++,新建win32控制台程序 下面的哪些名字和路径,改了项目名就行,其他的也不用管,没必要 随...

2019-04-28 08:43:33 4643 0

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