自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 vue+webpack实现精美游戏设计:实现建筑物的渐变生成效果

像星际一样实现建筑物的渐变生成特效

2017-12-12 16:12:56 866

原创 VUE+WebPack游戏设计:用CSS实现扑克牌翻转特效

用css实现扑克牌的翻转动画效果

2017-07-17 17:45:18 3360 1

原创 编译原理动手实操之一个输入系统的实现

大家好,欢迎大家来到coding迪斯尼,愿天下没有难学的知识阅读博客的朋友可以到我的网易云课堂中,通过视频的方式查看代码的调试和执行过程: http://study.163.com/course/courseMain.htm?courseId=1002830012这篇文章是我课程中的系列讲稿,也是编译原理动手实操系列的文章。在我们南方有一句老话叫:无

2016-03-16 10:02:54 3128 3

原创 输入及词法分析详解

欢迎大家来到coding迪斯尼,我的愿景是:让天下没有难学的知识 这句话是跟马云学的,就算没马云的命,那就用马云的话,也是不错的。阅读博客的朋友可以到我的网易云课堂中,通过视频的方式查看代码的调试和执行过程: http://study.163.com/course/courseMain.htm?courseId=1002830012 大家好,继上几节我们通过实现一个简易编译

2016-03-08 12:08:29 3098 1

原创 编译原理动手实操,用java实现一个简易编译器-语法解析

语法和解析树:举个例子看看,语法解析的过程。句子:“我看到刘德华唱歌”。在计算机里,怎么用程序解析它呢。从语法上看,句子的组成是由主语,动词,和谓语从句组成,主语是“我”,动词是“看见”, 谓语从句是”刘德华唱歌“。因此一个句子可以分解成 主语 + 动词 + 谓语从句:句子-->主语+动词 + 谓语从句 主语是名词,因此有 :主语->名词句子里的

2016-02-21 18:03:43 9907 7

原创 利用DSF深度优先搜索来解容器倒水问题

在一些面试算法或智力题中,时不时会遇到容器倒水的问题,例如,有三个容器,分别是10升,7升,4升,7升和4升的容器装满了水,10升容器是空的,如果将容器a中的水倒入容器b时,必须使得a中的水全部倒完,或者b被倒满,问有没有一种倒水序列,使得7升容器或4升容器中只有2升的水。这个问题怎么会跟图论的深度优先搜索联系起来呢。如果我们把三个容器的水量和容量状态当作一个点,例如初始时刻[10(e

2015-12-07 21:27:36 1733 1

原创 一个在线显示doc文本的实例

最近带着一对攻城狮给客户做一个web平台系统,在与客户做需求分析的过程中,发现客户有个需求痛点,那就是希望能在web上直接浏览doc文本的内容。原来的老平台在显示doc文本时,有很多问题,例如原有doc文本排版格式显示错误,例如表格位置发生了偏移,字体不再是原有doc里的字体等等。如果新系统能解决客户这一痛点,想必我们技术团队的实力会得到客户进一步的肯定。我做过调查,发现在线显示doc

2015-11-24 15:20:00 2726 1

原创 一个android文本比对app的实现(二)--界面

本篇对该app的界面实现做一些说明。谷歌对android app 的界面开发提供了精巧的设计,其界面设计的布局技术(layout), 运用了类似于设计模式的composite pattern, 具体来说,就像俄罗斯娃娃,外面一个大娃娃可以套一个小娃娃。android 的layout 里面可以再嵌入其他layout, 层层递进,进而形成变化多样而又非常灵活的界面布局。

2015-11-17 15:36:42 995

原创 一个android 文本比对App的实现(一)

做c++开发很多年了,从早年windows vc6.0 做客户端程序开发,这些年后台流媒体服务器后台开发。随着时代变迁,移动互联逐渐兴起,直到现在,移动互联的风头早已盖过传统互联网应用,因而传统后台开发似乎日渐式微。如今要找工作的话,android,IOS等开发的职位不但数量远远多于c++,而且报酬也要比c++高很多,如果在移动开发上做过三年以上,年薪25W以上的机会多的是,但是对于c++ 要达到

2015-11-13 17:05:27 2419

原创 一道看似简单的面试算法题所隐藏的潜在意图

大家面试历程中有没有经历过类似情况,面试官给出一道算法题,看似不难,你三下五除二搞定了,时间和空间效率都是最优,你乐呵呵以为offer,已经到手,结果左等右等,望穿秋水,面试的结果却是无疾而终,你反复确认,觉得题做得没错啊,为什么会失败呢。我就有过类似的情况,后来反复思考,才明白,其实我没明白简单的表面其实隐藏着潜在的考察点。举个栗子,一道常用的面试算法题是:给你一个链表,让你将链表反转。

2015-11-11 17:45:51 1202

原创 运用面向对象的分析与设计模式巧解面试算法题

IT行业,千变万化,日新月异,身处其中的各位同仁必感同身受,特别是对从事技术开发的朋友们而言,或许能感觉到唯一不变的就是变化。对纷繁复杂的程序人生而言,其实有一个看不见的主旋律,那就是找工作,找房子,找人(另一半)。如果你是心怀梦想,浪迹于上广北深的千万大军中的一员的话,我想这一句话该是你生活的写照了。在三找中,找工作是其他两找的基础,本系列文章主要是就找工作展开而言。对开发而言,面试

2015-02-09 17:06:40 1005

原创 windows上四个恶意代码和病毒程序分析实战(图文+视频)

2020-08-07 09:48:21 3

原创 内核级病毒与木马攻防:windows上四个恶意代码和病毒程序分析实战

本节看看如何将前面讲述的各种工具和理论应用到实践中来。我们将拿几个专门针对windows系统开发的恶意程序作为实例,用前面讲到的工具和理论具体分析其设计原理并了解它所要实现的目的。所要分析的二进制可执行文件以及所有用到的工具可从如下链接下载链接: https://pan.baidu.com/s/1QBwGxCGjA7kYd4HchSTlWg 密码: 09g7首先我们分析第一个恶意程序,也就是malicious-01.exe。面对exe程序时,首先要做的就是将它丢到PEView里先看看它的大概信息,打开

2020-08-06 11:49:49 16

原创 ELF文件的符号表和函数调用追踪(视频版)

2020-07-30 12:14:43 23

原创 内核级病毒与木马攻防:ELF文件的符号表和函数调用追踪

熟悉编译原理的同学一定了解何为符号,所谓符号其实是一种数据结构,用来描述编程语言中定义的特定对象。例如编程语言中定义的变量,函数都有特定的符号用于描述他们的性质。例如变量对应的符号中包含了变量对应的字符串名称,变量的类型,以及变量对应的内存。函数对应的符号包含了函数名称字符串,函数的返回值类型,函数入口内存地址等,在代码调试时,你把鼠标挪动到变量所在位置,IDE就给你显示出变量当前的取值等信息,这些信息就来自变量对应的符号,我在有关编译原理的两门课程里对符号有非常深入的讲解。在elf文件中存在两种符号表,

2020-07-28 10:51:38 51

原创 内核级病毒与木马攻防:windows可执行文件结构解析及常用工具

大多数人使用windows系统,相必对其.exe结尾的文件印象深刻,执行任何程序时,你双击该文件即可,这个文件就是系统的可执行文件,我们需要了解其组成结构才能对其进行侵入,劫持或注入恶意代码。.exe文件也叫PE文件,它由一系列段头和段来组成。它一开始是一系列段头数据结构,用于描述各个段的相关性质,接下来就是包含代码和数据的各种段。有几个段特别值得注意,.text段包含CPU可以执行的指令,其他所有段包含数据或者是辅助CPU执行该段里面指令的相关信息,这个段是唯一包含可执行代码的段。.rdata包含引入和

2020-07-27 11:17:40 132

原创 内核级木马与病毒攻防:Linux可执行文件的ELF格式描述

要想在Linux系统上实现逆向工程,分析,设计或查杀病毒和恶意代码,你不得不深入掌握其可执行文件的ELF格式,这样你才能了解进程在内存空间的布局和运行的基本规律,这样你才能有针对性的设计有效的病毒或恶意代码入侵系统。ELF文件主要有以下几种类型,ET_NONE表示该文件的作用未知;ET_REL表示重定向文件或叫目标文件,它们将会被链接并加装到某个指定的虚拟内存位置,常见的以.o结尾的二进制文件就属于这种类型。ET_EXEC表示可执行文件,它是由多个.o文件链接起来,可以被加载到内存进行执行的进程数据文件;

2020-07-20 10:57:38 85

原创 内核级木马与病毒攻防:windows恶意代码分析入门

本节帮助读者入门windows上如何对恶意软件或病毒做初步分析。分析分两种,一种叫静态分析,也就是通过直接读取病毒或恶意程序的可执行文件来分析它的运行原理,一种是动态分析,也就是在病毒或恶意程序正在运行的情况下,监视其一举一动,通过观察它在系统中的运行情况来分析它的目的和原理。本节介绍基本的静态分析方法,该方法简单易行,但作用有限,要想跟病毒或恶意程序斗智斗勇最终还得依赖于动态分析。静态分析的第一种方法就是直线读取病毒或恶意程序的可执行文件,从中抽取关键信息。很多病毒或恶意程序的作者为了快速实现其非法目的

2020-07-10 16:58:35 962

原创 Linux内核级木马与病毒攻防:基础工具介绍

欲成其事先利其器。要想完成一项复杂的任务,工具的作用至关重要。要想在Linux系统上开发或研究木马病毒等特殊程序,我们需要使用一系列强大的开发和调试攻击。本节先介绍几种在Linux系统上极为强大的工具。第一个当然是gdb了,在Linux上,它是唯一能用于程序调试的利器。我们后面开发代码或调试分析其他病毒或木马的设计模式和原理时,必须使用gdb作为手术刀,对要研究的病毒和木马进行”剖尸检验“,通过gdb调查木马或病毒的代码设计方法,同时也使用gdb加载恶意代码,研究其运转流程。第二个是objdump,它的

2020-07-04 17:05:07 382

原创 发刊词:做一个既“酷”又性格的黑客

任何一个热爱技术的程序员都渴望自己成为一名了不起的黑客。一来黑客的形象相当酷,在众多好莱坞大片中,黑客往往是电影的主角或是关键人物,获得极大的聚焦,例如《黑客帝国》中的尼奥。二来,黑客是...

2020-07-01 18:53:27 238

原创 java实现HTTP协议:POST协议代码实现
原力计划

本节我们使用代码实现HTTP的POST协议流程。任何HTTP服务器都会支持客户端将文件上传,该功能的实现往往要走POST协议流程。为了使用代码实现该协议,首先需要一个目的HTTP服务器,我选择iPhone版本的福昕pdf阅读器,它支持通过POST协议将文件从电脑上传到手机,在打开其上传功能后,在电脑输入相应网址就能看到如下画面:点击”选择文件“按钮,然后选择要上传的文件,最后点击"upload"按钮,那么浏览器就会执行POST协议实现数据上传。我们先通过抓包的方式了解POST协议数据包的结构,在执行文件

2020-06-16 10:26:59 244

原创 Java实现HTTP:回应数据包头格式详解

本节我们看看服务器返回给客户端的数据包头有什么特点。在HTTP1.1中有9种数据包头字段需要了解和掌握。第一个叫Accept-Ranges,他告诉客户端服务器是否处理了包含Range请求的请求数据包。该字段以Accept-Range: bytes的形式出现,在客户端向服务器提交数据时,它可能只提交从某个位置起的部分数据,这些数据在请求数据包中以Range字段来标明,如果服务器支持这种局部数据上传模式,那么他就会返回Accept-Range: x bytes表示成功接收客户端发来的数据,如果不支持它就会以Ac

2020-06-10 17:53:08 144

原创 Java实现HTTP:HTTP数据包头部格式解读1

HTTP协议的大部分功能其实通过其协议包头来实现。因为HTTP协议包头作用如此重要,因此需要单独列出一节来详细讲解。协议包头大体上分为4类,分别为通用包头,请求包头,回复包头,和实体包头。先看看通用包头的主要作用。第一就是缓存控制,在协议包头中存有很多类型的指令,这些指令用于控制发送数据的设备执行指定操作,这里我们举出关于缓存指令的集中常见情况来说明:缓存控制指令HTTP消息类型具体描述no-cache在请求和回复数据包中使用当头部存在该指令时,他要求接收数据包的设备将后续接收

2020-05-30 11:09:54 167

原创 HTTP数据包头部格式解读1

HTTP协议的大部分功能其实通过其协议包头来实现。因为HTTP协议包头作用如此重要,因此需要单独列出一节来详细讲解。协议包头大体上分为4类,分别为通用包头,请求包头,回复包头,和实体包头...

2020-05-30 11:08:28 306

原创 java实现HTTP协议:HTTP协议的状态码解读

当客户端把请求发送给服务器后,对方会根据处理结果返回一系列HTTP数据包。其中第一行就用给定格式表明服务器对请求处理的结果。第一行包括三部分信息,第一部分是一个数值,也叫状态码,用来表明请求是否成功,第二部分是对状态码的字符串解读,用于说明状态码表示的含义,第三部分就是协议的版本。第一部分的数值其实是用于机器解读,因为机器适用于解读数值。第二部分字符串其实是为了方便与人来解读。状态码跟我们前面描述的FTP协议一样拥有给定形式,它由三位数字组成,其中第一位数字的作用最为重要,它用于表达状态的分类,第二和第三

2020-05-25 12:05:38 112

原创 HTTP协议的状态码解读

当客户端把请求发送给服务器后,对方会根据处理结果返回一系列HTTP数据包。其中第一行就用给定格式表明服务器对请求处理的结果。第一行包括三部分信息,第一部分是一个数值,也叫状态码,用来表明...

2020-05-24 18:13:52 132

原创 现代黑科技版“指鹿为马":使用CycleGAN实现男女“无痛变性”
原力计划

在秦朝末期,奸臣赵高一手遮天,为了显示自己的权势与力量,他在众人面前指着一头鹿说那是马,大家畏惧赵高的权势,明知那是鹿却不得不配合赵高说那是马,这就是经典成语”指鹿为马“的出处。在光天化日之下,罔顾事实强行将A说成B,除非你有权有势,别人都依附于你,你才有可能做得到,要不然大家都会认为你傻逼。例如像我这样的平头百姓在大街上指着一个五大三粗,满脸胡渣子的大男人说那是个窈窕大美女,你会不会觉得我傻逼呢?在现代人工智能技术的加持下,我还真有指鹿为马,指男为女的”超能力“。本节我们介绍一种功能强大的对抗性网络叫

2020-05-14 11:30:23 480

原创 使用java实现HTTP的GET请求
原力计划

在前几节我们详细讲解了http协议的相关信息,基于“知行合一”的原则,只有通过具体动手实践才有可能检验知识点被我们真正掌握,本节我们就使用代码实现http的get请求。首先需要一个http服务器,基于简单原则,我使用了在手机上的福昕pdf阅读器iPhone版,安卓版效用一样,它自身附带了小型http服务器,用于将文档从电脑传给手机,打开该App,在菜单中选择Wi-Fi,点击“允许文件传输”即可启动http服务器,然后在浏览器中输入“http://192.168.2.127:8888",其中192.168.

2020-05-12 11:33:03 346

原创 Deep-Fake原理揭示:使用WGAN-GP算法构造精致人脸

在上一节中可以看到基于”推土距离“的WGAN网络能够有效生成马图片,但是网络构造能力有所不足,因此导致有些图片模糊,甚至有些图片连马的轮廓都没有构建出来,本节我们改进WGAN网络,让它具...

2020-05-08 10:38:09 86

原创 使用WGAN-GP算法构造精致人脸
原力计划

在上一节中可以看到基于”推土距离“的WGAN网络能够有效生成马图片,但是网络构造能力有所不足,因此导致有些图片模糊,甚至有些图片连马的轮廓都没有构建出来,本节我们改进WGAN网络,让它具有更强大的图像生成能力。在介绍WGAN网络算法时提到,如果把网络看成一个函数,那么网络要想具备好的图像生成能力就必须满足1-Lipshitz条件,也就是要满足公式:根据微积分的中值定理,如果函数f(x)可导,...

2020-05-08 10:33:30 310

原创 java开发HTTP协议:HTTP协议的方法详解
原力计划

如图所示,HTTP请求数据包第一行第一个单词具有重要意义:第一行第一个单词是"GET",客户端会根据对服务器的请求来指定该单词,因此第一行第一个单词被称为HTTP协议的方法。客户端发送给服务器的请求数据包,第一个单词永远作为该请求的“方法”。通常情况下,客户端通知服务器采取某种操作并将操作的结果返回给它都被称为命令,只有在HTTP协议下被称为方法,因此HTTP协议的方法与其他协议所说的命令并没...

2020-05-05 11:24:52 288

原创 Java实现HTTP协议:数据包格式概览

我们看看http协议的数据包格式,首先可以使用wireshark抓包,由于http协议使用80端口,因此可以在wiresharks中使用过滤条件tcp.prot==80,然后用浏览器打开一个页面,在wireshark里会看到这样的抓包:双击打开会看到如下内容,这就是http协议的主要内容和结构:下面我们对其内容进行详细解读。HTTP数据包遵守以下基本格式:<起始行><...

2020-04-18 11:02:57 279

原创 HTTP协议原理及java实现:数据的基本传输模式

zu说到基于TCP协议的上层协议,绝对绕不开的是HTTP协议,在其设计之初,设计者绝对想不到该协议具备的灵活性能够让其成为最广泛使用的TCP上层协议,在我看来HTTP协议几乎能够取代任何基于TCP的上层协议,如今基于互联网的绝大多数移动应用,他们使用的都是HTTP协议,甚至苹果专用的流媒体传输协议HLS,使用的也是HTTP协议,同时现在非常流行的所谓小程序,它们也要基于HTTP协议实现客户端与服务...

2020-04-08 18:41:58 438

原创 使用’推土距离‘构建强悍的WGAN

读者读到此处时或许会有一个感触,网络训练的目的是让网络在接收输入数据后,它输出的结果在给定衡量标准上变得越来越好,由此“衡量标准”设计的好坏对网络训练最终结果产生至关重要的作用。回想上一节,当我们把N张数据图片输入到网络后,网络会输出一个含有N个分量的向量,接着我们先构造一个含有N个1的向量,然后判断网络得出的向量与构造的含有N个1的向量是否足够“接近”。算法判断两个向量是否接近的标准是“交叉...

2020-03-31 10:53:44 204

原创 生成型对抗性网络入门实战一波流

前几节用代码介绍了生成型对抗性网络的实现,但后来我觉得代码的实现七拐八弯,很多不必要的烦琐会增加读者的理解负担,于是花时间把代码进行强力精简,希望由此能帮助有需要的读者更顺利的入门生成型对抗性网络。顾名思义,该网络有一种“对抗”性质。它实际上由两个子网络组成,一个网络叫生成者,一个网络叫鉴别者,后者类似于老师的作用。根据我们自己的学习经验得知,老师的作用除了告诉你“怎么做”之外,最重要的是告诉你...

2020-03-16 23:14:44 151

原创 java代码实现FTP协议

前几节我们完成了ftp协议的主要讲解,同时使用wireshark抓包了解ftp数据协议包的特征,本节我们使用代码完成ftp协议,代码将模仿ftp客户端,它与服务器建立连接后,使用用户名和密码登陆服务器,然后获得服务器的当前目录内容,继而通过数据连接获取服务器推送目录具体信息,最后客户端关闭,下面我们看看具体的代码实现,首先在工程目录下新建名为FTPClient的类,相关实现如下:package ...

2020-02-29 17:44:05 776 1

原创 java实现FTP协议:wireshark抓包解析

本节我们看看ftp协议的数据包格式,同时使用代码加以实现。首先我们现在机器上安装ftp服务器,我在自己的机器上安装了QuickFTP Server,它是我随便找来的一款Mac ftp服务器,如下图所示,我将连接端口设置为2100,同时设置了用户名和密码,如此我们就可以通过抓包的方式了解协议的数据包格式:然后打开wireshark,在过滤条件中输入tcp.port==2100,接着开始监听,如此...

2020-02-20 17:22:57 733

原创 生成型对抗性网络介绍与实现原理

如何无中生有是AI领域研究的重点。原有神经网络大多是对已有问题的识别和研究,例如让神经网络学会识别图片中的动物是猫还是狗,随着研究的进一步深入,目前能够做到让网络不但能识别图片中的物体,...

2020-02-18 12:13:43 154

原创 生成型对抗性网络介绍

如何无中生有是AI领域研究的重点。原有神经网络大多是对已有问题的识别和研究,例如让神经网络学会识别图片中的动物是猫还是狗,随着研究的进一步深入,目前能够做到让网络不但能识别图片中的物体,还能让它学会如何创造图片中的物体,具备”创造性“让AI技术的应用价值大大提升。在深度学习“创造性”上做出巨大贡献的是来自谷歌大脑项目组的研究员Goodfellow提出一篇名为"Generative Adversa...

2020-02-17 18:56:49 229

原创 FTP协议数据包命令含义详解

本节我们掌握FTP协议的数据包格式,为编码实现奠定基础。我们先看看控制命令的格式。当用户端通过控制命令通道想服务器端发送数据后,服务器端一定会产生回复。回复主要有三个目的,首先是让客户端确定服务端收到了消息,其次是通知客户端请求是否能被接收,第三通知客户端当前服务器的状态。数据包格式的组成特点是数字与文本信息相混合。服务器返回给客户端的数据包中一定包含回复码,该数值用来通知客户端数据包的格式和内...

2020-02-12 21:09:31 537

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