- 博客(83)
- 资源 (1)
- 收藏
- 关注
原创 week3 leetcode面试题 [16.26. 计算器] [739.每日温度]
16.26. 计算器参考方法:https://blog.youkuaiyun.com/Changxing_J/article/details/110313298class Solution: def calculate(self, s: str) -> int: marks = {"+", "-", "*", "/"} stack = [] # 多项式栈 now_num = "" # 当前数字 last_mark = "+"
2021-04-10 12:59:34
301
原创 week2 leetcode面试题 [01.03. 两数相加] [206. 反转链表]
2. 两数相加给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头。解题思路:先创建一个新链表的头节点遍历l1和l2两个链表,只要有一个链表还没有遍历到末尾,就继续遍历每次遍历生成一个当前节点l3的下一个节点,其值为两链表对应节点的和再加上当前节点l3产生的进位carry更新进位后的当前节点l3的值...
2021-03-28 14:33:39
368
原创 week1 leetcode面试题 [01.03. URL化] [1528. 重新排列字符串]
01.03. URL化URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)解题:class Solution: def replaceSpaces(self, S: str, length: int) -> str: res = '' for i in range(length):
2021-03-13 13:02:27
438
原创 深度学习PyTorch | 总结
过拟合、欠拟合1、在数据不够多的时候,k折交叉验证是一种常用的验证方法。2、过拟合是指训练误差达到一个较低的水平,而泛化误差依然较大。欠拟合是指训练误差和泛化误差都不能达到一个较低的水平。发生欠拟合的时候在训练集上训练误差不能达到一个比较低的水平,所以过拟合和欠拟合不可能同时发生。3、模型复杂度低容易导致欠拟合;训练数据集小容易导致过拟合;过拟合还可以使用权重衰减和丢弃法来缓解,即...
2020-02-18 16:37:20
987
1
翻译 恶意代码检测
恶意代码定义恶意代码也称为恶意软件,是对各种敌对和入侵软件的概括性术语。包括各种形式的计算机病毒、蠕虫、特洛伊木马、勒索软件、间谍软件、广告软件以及其他的恶意软件。恶意代码的种类计算机病毒:指寄居在计算机系统中,在一定条件下被执行会破坏系统、程序的功能和数据,影响系统其他程序和自我复制。蠕虫:也算是一种病毒,它具有自我复制能力并通过计算和网络的负载,消耗有限资源。特洛伊木马:也...
2019-12-15 14:08:32
4537
1
原创 机器学习 | 简单线性回归和最小二乘法
最近一段时间在学习机器学习算法,看了一些视频,打算整理下做成笔记,方便以后看。线性回归:能够用一个直线比较精确地描述数据之间的关系,当出现新的数据的时候,能够预测出一个简单的值。线性回归算法主要来解决回归问题,本身思想简单,容易实现,是许多强大的非线性墨香的基础,而且结果比较直观好解释。目标:寻找一条直线,最大程度的“拟合”样本特征和样本输出标记之间的关系。如图假设找到了最佳拟合直...
2019-10-23 11:24:47
349
原创 一道CTF题:sql爆破
题目:http://web.jarvisoj.com:32780/^HT2mCpcvOLf/index.php?id=-1'打开网页:说明存在sql注入。尝试了一些常见的绕过操作都不行,过滤了注释--,空格,and,select等。尝试用/*11*/绕过http://web.jarvisoj.com:32780/%5EHT2mCpcvOLf/index.php?id=...
2019-08-22 21:27:20
641
1
原创 SQL复习笔记总结
SQL((Structured Query Language))是用于访问和处理数据库的标准计算机语言。1、SQL面向数据库执行查询【1】SQLselect:SELECT 语句用于从表中选取数据,结果被存储在一个结果表中(称为结果集)。select 列名称 from 表名称select 列名称1,列名称2 from 表名称select * from 表名称【2】SQ...
2019-08-15 18:40:03
388
原创 Web安全之机器学习 | 朴素贝叶斯算法
1、朴素贝叶斯算法概述贝叶斯分类是一系列分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。其中朴素贝叶斯(Naive Bayesian,NB)是其中应用最广泛的分类算法之一。通常企业和大型邮件服务商都会提供拦截垃圾的功能,最常见的一种算法就是基于朴素贝叶斯的文本分类算法,大体思路是通过学习大量的垃圾邮件和正常邮件样本,让朴素贝叶斯训练出文本分类模型。NB算法是基于贝叶斯定理...
2019-08-13 18:19:18
506
原创 Web安全之机器学习 | 决策树与随机森林算法
决策树算法1、决策树算法概述决策树表现了对象属性与对象值之间的一种映射关系。决策树中每个节点表示某个对象,而每个分叉路径则代表某个可能的属性值,每个叶节点则对应从根节点到该叶节点所经历的路径所表示的对象值。决策树可以用于数据分类也可以用于预测。例如:from sklearn import treeX = [[0, 0], [1, 1]]Y = [0, 1]clf = t...
2019-08-12 15:44:09
910
原创 K近邻算法检测异常操作及病毒
1、简介K邻近算法(K-Nearest Neighbor,KNN),就是K个最近的邻居的意思,就是说每个样本都可以用它最接近的K个邻居来代表。KNN算法的核心是,如果一个样本在特征空间中的K个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。KNN常用的算法:Brute Force、K-D Tree、Ball Tree.2、一个简单示例用...
2019-08-11 17:02:51
1710
1
原创 ImportError: cannot import name 'cross_validation'解决
在学习KNN算法检测异常操作,在效果验证中,使用交叉验证时,调用了cross_validation函数,结果在编译时报错。经过查看知道sklearn在0.02版本后改变了cross_validation函数(https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_validate.htm...
2019-08-11 15:49:38
5925
1
原创 XSS 攻击与防御
XSS(Cross Site Scripting)XSS,全称Cross Site Scripting,即跨站脚本攻击,也是一种注入攻击,是指攻击者在页面注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在浏览器上运行。根据恶意代码是否存储在服务器中,XSS可以分为存储型的XSS与反射型的XSS。还有一种特殊的基于DOM的XSS(DOM Based XSS)1、反射型XSS又称为非持...
2019-08-05 12:48:22
599
原创 Web安全之机器学习 | 数据集和特征值提取
数据集1、KDD 99数据KDD是知识发现与数据挖掘(Knowledge Discovey and Data Mining)的简称。2、HTTP DATASET CSIC 2019HTTP DATASET CSIC 2019包含大量标注过的针对web服务器的36000个正常请求及25000个攻击请求,攻击类型包括sql注入、缓冲区溢出、信息泄露、文件包含、xss等,被广泛用于WAF...
2019-08-05 11:48:31
2903
原创 Web安全之机器学习 | 学习工具之Python和TensorFlow
Python在机器学习领域的优势:1、NumPy:NumPy是Python的一种开源的数组计算扩展。可用来存储和处理大型矩阵。提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理、以及精密的运算库,专门为进行严格的数字处理。NumPy包括:一个强大的N维数组对象Array;比较成熟的(广播)函数库;用于整合C/C++和Fortran代码的工具包;实用的线性代数、傅...
2019-08-01 18:05:58
317
原创 CTF | PWN练习之环境变量继承
实验描述: 主机/home/test/3目录下有一个pwn3程序,这个程序会对进程中名为HEETIAN的环境变量的值进行处理,通过构造特定的环境变量参数数据可以对程序发起溢出攻击,成功会提示Congratulations, you pwned it.,失败则会提示Please try again.的提示信息。注意:如果没有设置HEETIAN这个环境变量,那么运行程序后将输出Plea...
2019-07-29 19:34:12
840
原创 HTTP数据包详解
1. HTTP报文格式 HTTP由请求和响应两部分组成,所以对应的也有两种报文格式。下面分别介绍HTTP请求报文格式和HTTP响应报文格式。 HTTP请求报文格式 以上表格中,第1行为“请求行”,第2、3、4行为“请求头部”,第5行为空行,第6行为“请求正文”。分别介绍这4部分: 1.请求行:由3部分组成,分别为:请求方法、URL(见...
2019-07-28 20:53:01
11706
原创 firefox浏览器安装firebug、Tamper Data(解决:老版本换新版本)
之前安装的firefox是最新版本,在“附加组件”添加插件,查找不到firebug。于是卸载了,重新安装了37.0版本,下载链接:http://ftp.mozilla.org/pub/firefox/releases/安装时有个更新安装的对勾选择,将对勾取消掉。安装后,在选项——>高级——>更新——>选择不检查更新。在组件添加中还是搜索不到firebug和Tam...
2019-07-28 18:52:23
3341
1
原创 机器学习笔记 | multivariate linear regression(多元线性回归)
设置编程环境Octave是一个自由的,开放源码可以在许多平台的应用。它有一个文本界面和实验的图形之一。MATLAB是专有软件,但免费的试用许可到MATLAB在线注册账户。MATLAB在线:https://matlab.mathworks.com/在windows安装Octave: http://wiki.octave.org/Octave_for_Microsoft_Windows...
2019-07-28 12:31:19
3508
原创 机器学习笔记 | Linear Algebra Review(复习线性代数)
1、矩阵和向量(Matrices and Vectors)上面矩阵A是一个4x 2矩阵,Aij ,下标i j分别对应矩阵的第i行和第j列 。一个有'n'行的向量被称为'n'维向量。vi表示向量第i行中的元素。一般情况下,所有的向量和矩阵都是从1-开始索引的。矩阵一般用大写字母表示,向量一般用小写字母表示。标量是一个单个值,不是向量或矩阵。R是实数的集合,Rn...
2019-07-28 09:50:32
512
原创 机器学习笔记 | Model and Cost Function(模型表示和代价函数)
1、模型表示监督学习是对于每个数据,给出了正确的答案。对于上面房价预测列子来说,根据我们给的数据,房子的实际价格是多少。预测出的是一个准确的输出值。监督学习中,数据集被称为训练集。m :表示训练样本的数量x :表示输入变量,也被称为特征值y :表示输出变量或目标变量(x,y) :表示一个训练样本,为了表示某个训练样本,可使用x(i)和y(i)具体表示,其中i是...
2019-07-28 09:50:09
744
原创 机器学习笔记 | Supervised Learning and Unsupervised Learning(监督学习和无监督学习)
趁着开学前,计划入门机器学习,选择了coursera吴恩达老师的机器学习课程。(如果打开视频看不了解决方法访问:https://www.cnblogs.com/marsggbo/p/7625575.html)1、初识机器学习机器学习的应用已经渗透了很多方面,如google搜索引擎苹果的图片识别,垃圾邮件过滤器,淘宝的推荐等等。两种提出的机器学习的定义:Arthur Samuel...
2019-07-28 09:43:58
1187
原创 CTF | PWN练习之精确覆盖变量数据
预备知识:1、命令行参数C语言的main函数拥有两个参数,为int类型的argc参数,以及char**类型argv参数。其中argc参数的值表示命令行参数的个数,而argv则指向一个字符串数组,该数组存储了具体的命令行参数的内容。程序本身的名字为命令行的第一个参数。2、xargs命令Linux的xargs命令可以将输入数据当做命令行参数传给指定的程序。3、字节序字节顺序,又...
2019-07-27 22:16:00
1520
原创 汇编语言 | AT&T汇编语言
这两天的pwn题环境都是在Linux中,采用的汇编语言是 AT&T 格式。之前学习的是Intel格式的8086汇编,今天学习了下AT&T汇编语言。1、汇编指令基于 x86 架构 的处理器所使用的汇编指令一般有两种格式:Intel 汇编:DOS(8086处理器)、Windows AT&T汇编:Linux, Unix, Mac OS,2、AT&T与In...
2019-07-27 22:13:54
1128
原创 CTF | PWN练习一
预备知识:1、了解PWN(溢出) PWN是一个黑客语法的俚语词,自"own"这个字引申出来的,这个词的含意在于,玩家在整个游戏对战中处在胜利的优势,或是说明竞争对手处在完全惨败的 情形下,这个词习惯上在网络游戏文化主要用于嘲笑竞争对手在整个游戏对战中已经完全被击败(例如:"You just got pwned!")。有一个非常著名的国际赛事叫做Pwn2Own,相信你现在已经能够...
2019-07-26 16:53:40
2304
原创 Reverse | 使用UPX对软件进行加壳
1、相关知识:(1)加壳 加壳的全称应该是可执行程序资源压缩,是保护文件的常用手段。加壳过的程序可以直接运行,但是不能查看源代码.要经过脱壳才可以查看源代码。 加壳的程序经常想尽办法阻止对程序的反汇编分析或者动态分析,以达到保护源码的目的。这种技术也常用来保护软件版权,防止被软件破解。(2)加壳软件 加壳软件可分为两类:一类是压缩,一类是保护。压缩...
2019-07-25 11:41:46
6926
1
原创 Windows10安装Kail Linux双系统
打算在我现在WIN10系统的基础上再安装一kail linux系统。准备:kail linux下载链接:https://www.kali.org/downloads/下载软碟通(UltraISO)制作U盘,下载地址:https://cn.ultraiso.net/xiazai.html我的F盘已经留出了60G可用空间,如果没有20G可用空间可用分区进行分区。准备好一个U盘来制...
2019-07-25 09:04:47
1780
原创 汇编语言 | CALL 和RET指令
call和ret指令都是转移指令,它们都修改IP,但同时修改CS和IP。1、ret和retfret指令用栈中的数据,修改IP的内容,从而实现近转移。retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移。CPU执行ret指令时,进行下面两步操作:(IP)=((ss)*16+(sp))(sp)=(sp)+2CPU执行retf指令时,进行下面4步操作:(IP)=...
2019-07-24 14:19:55
929
原创 汇编语言 | 转移指令的原理
可以修改IP,或同时修改CS和IP的指令统称为转移指令。转移指令就是可以控制CPU执行内存中某处代码的指令。8086CPU的转移行为有以下几类:只修改IP时,称为段内转移,比如:jmp ax. 同时修改IP和CS时,称为段间转移,比如:jmp 1000:0由于转移指令对IP的修改范围不同,段内转移又分为:短转移和近转移短转移IP的修改范围为:-128~127 近转移IP的修改范围...
2019-07-24 12:18:34
410
原创 汇编语言 | 数据处理的两个基本问题
描述性符合:reg(表示一个寄存器)和sreg(段寄存器)reg集合:ax、bx、cx、dx、ah、al、bh、bl、ch、cl、dh、dl、sp、bp、si、disreg集合:ds、ss、cs、es1、bx、si、di、和bp在8086CPU中,只要这四个寄存器可以用在"[.....]"中进行内存单元的寻址。在"[.....]"中,这四个寄存器可以单个出现,或只能以4种组合出...
2019-07-24 09:23:36
392
原创 汇编语言 | 第五章 [BX]和loop指令
1、[Bx]mov ax,[bx]功能:bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将SA:EA处的数据送入ax中。即:(ax)=((ds)*16+(bx))mov [bx],ax功能:bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将ax中的数据送入内存SA:EA处。即:((ds)*16+(bx))=ax2、Loop指令loop指令的格式...
2019-07-23 20:53:46
491
原创 CTF | REVERSE练习之API定位
题目描述: 主机C:\Reverse\2目录下有一个CrackMe2.exe程序,运行这个程序的时候会提示输入一个密码,当输入正确的密码时,会弹出过关提示消息框,请对CrackMe2.exe程序进行逆向分析和调试,找到正确的过关密码。实验步骤:1、外部行为分析在随便输入字符和不输入字符时情况如下:所以目的是找到一个正确的密码输入。2、查看是否加壳选中程...
2019-07-23 19:12:01
1049
原创 Reverse | 使用UPX对软件进行加壳
题目描述: 主机C:\Reverse\6目录下有一个CrackMe6.exe程序,这个程序是使用upx程序加过壳的,请尝试对其进行手工脱壳,并编写详细的分析报告。要求脱壳后的程序可以正常运行。实验步骤:1、观察程序的外部特征 运行C:\Reverse\6\CrackMe6.exe程序,提示需要对该程序进行脱壳处理:使用PEiD载入程序,查看CrackM...
2019-07-23 15:54:45
1276
1
原创 汇编语言 | 第四章 第一个程序
1、一个源程序从写出到执行的过程编写汇编源程序; 对源程序进行编译连接; 执行可执行文件中的程序。下图描述了一个汇编语言程序从写出到最终执行的简要过程。2、源程序在汇编语言源程序中,包含两种指令,一种是汇编指令,一种是伪指令。汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终被CPU所执行。伪指令没有对应的机器码指令,最终不被CPU执行。而是由编译器来执行指令...
2019-07-23 15:37:43
395
原创 汇编语言 | 第三章 寄存器(内存访问)
1、内存中字的存储字单元概念:字单元,即存放一个字符数据(16位)的内存单元,由两个地址连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节。2、DS和[address]8086CPU中有一个DS寄存器,通常用来存放要访问数据的段地址。8086CPU不支持将数据直接送入段寄存器的操作,需要一个寄存器进行中转。即将段地址送入一个一般的寄存...
2019-07-23 12:56:27
325
原创 CTF | Reverse 病毒分析
题目描述: 某日,一小学生弄了个U盘到打印店打印文件,U盘往计算机上一插,发现机子死机了,高明的打印店老板为了防止此类事件,特意设置了霸王键,可一键备份,随后老板把U盘备份了交给小王,小王想要知道U盘里到底被感染了什么你能帮帮他吗? 主机C:\Reverse\8目录下提供了这个UP_BOOT.img文件,请对该文件进行逆向分析,找到题目过关的Flag。实验步骤:...
2019-07-22 16:39:28
1182
1
原创 汇编语言 | 第二章 寄存器
一个典型的CPU由运算器、控制器、寄存器(CPU工作原理)等器件构成。在CPU中:运算器进行信息处理; 寄存器进行信息存储; 控制器控制各种器件进行工作; 内部总线连接各种器件、在它们之间进行数据的传送。寄存器是CPU中程序员可以用指令读写的部件,可以通过改变各种寄存器中的内容实现对CPU的控制。8086有14个寄存器,每个寄存器有一个名称,分别有:AX、BX、CX、DX、SI...
2019-07-21 22:10:39
427
原创 Python项目 | Web应用程序之Heroku部署
部署应用将其部署到一台服务器,让任何有网络连接的人都能够使用它。为此,将使用Heroku,这是一个基于Web的平台,能够管理Web应用程序的部署。让“学习笔记”在Heroku上运行。1、建立Heroku账户建立账户,访问https://heroku.com/ ,并单击其中的一个注册链接。注册账户是免费的,Heroku提供了免费试用服务,能够将项目部署到服务器并对其进行测试。其中注册...
2019-07-21 17:07:53
2186
原创 Python项目 | Web应用程序之样式设置
样式设置使用Bootstrap库设置样式,这是一组工具,用于为Web应用程序设置样式,使其在任何现代设备上都看起来很专业,无论是大型的平板显示器还是智能手机。为此,将使用应用程序django-bootstrap3。【1】应用程序django-bootstrap3安装django-bootstrap3,在活动的虚拟环境中执行如下命令:pip install django-bootstra...
2019-07-21 10:00:30
576
1
原创 Python项目 | Web应用程序之用户账户
用户账户Web应用程序的核心是让任何用户都能够注册账户并能够使用它。在本章中,创建一些表单,让用户能够添加主题和条目,以及编辑既有的条目。还将学习Django如何防范对基于表单的网页发起的常见攻击,目标:实现一个用户身份验证系统。创建一个注册页面,供用户创建账户,并让有些页面只能供已登录的用户访问。接下来,修改一些视图函数, 使得用户只能看到自己的数据,以及确保用户数据的安全。1、让用...
2019-07-20 17:33:08
857
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人