自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 完美数字

这个题目非常简单,主要注意,同时整除就是a%b==0,这里几个条件,多个&&,不要漏掉了,然后还要考虑的就是非法越界的判断情况。#include#includeusing namespace std;int main(){ int a,b; int num=0,i; cin>>a; cin>>b; if(a>b||a>10000||b>10000||a<=0||b<=0)

2015-08-30 19:16:50 796

原创 字符串识别与过滤

首先这道题目,看到测试用例之后,就知道,第一点要考察逗号作为分隔符,第二点,要读题意是连续重复的,我第一遍读题的时候,就没有看到连续的,以为重复的只需要输出一个来。那么很自然第二点就是考察,如果将连续重复的只输出一个。接下来,提供自己的两种解法。解法一:#include#includeusing namespace std;int main(){ int len1,len2;

2015-08-30 19:12:52 2391

原创 C++复习记录2 二义性 malloc free 以及 new delete

首先通过一段例子程序来看函数的二义性,有重载函数的构造函数造成的。红色。另外还有一些关于new和delete以及析构函数应该注意的地方#includeusing namespace std;class Point{      public:         Point()         {            X=Y=0;            co

2015-07-01 21:44:48 637

原创 c++复习记录1 深拷贝与浅拷贝

一、深拷贝与浅拷贝浅拷贝又称为引用拷贝,就是拷贝之后,共用同一个实体,只是引用名不同了,对其所做的改变都将改变原来的值。深拷贝又称为值拷贝,拷贝之后,有不同的名字,不同的内存空间,对其所做的改变都不会改变原来的值。主要区别:在拷贝指针的时候,浅拷贝只是把指针拷贝一份,指针所指的内容不拷贝,拷贝后的结果是,两个不同的指针,但是指向同一块内存地址,这样就造成了在调用析构函数进行析构的时候,

2015-07-01 20:23:18 686

原创 关闭谷歌chrome xss过滤器

在使用浏览器进行xss测试时需要预先关闭xss过滤器chrome的关闭方法:我的chrome安装目录在C:\Program Files (x86)\Google\Chrome\Application\chrome.exe,关闭方法是在命令行输入以下命令:"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"

2015-06-09 18:11:01 18885 5

原创 webgoat实验记录

去年做了webgoat的一系列相关实验,将自己的一些实验记录从以前的博客中转到新博客中来1首先设置好浏览器的代理地址,然后打开代理工具2打开webgoat_8080.bat,然后在浏览器中输入网址http://localhost:8080/WebGoat/attack就会提示登录,用户名密码都是guest3点击start选中相应的课程开始

2015-06-09 16:36:16 882

原创 使用其他的代理工具brup suide

首先谷歌浏览器输入brup suide后搜到的第一条英文的点进去,即可点击download的按键下下在那个free版本,安装设置ie浏览器的选项。http://drops.wooyun.org/tools/1548参照此文,用的是8080,而另外的一个是用的8008,不同.如果8080出现错误,设置为8081  代理地址为127.0.0.1 suide" title="使用其他的代理工

2015-06-09 16:34:43 644

原创 配置启用webscarab代理的谷歌设置

谷歌浏览器需要下载switchysharp扩展,直接谷歌switchysharp。出来的第一条,点进去为谷歌应用,点击那个免费即可安装,然后再谷歌的代理那里有个选项就可以了。展https://chrome.google.com/webstore/detail/proxy-switchysharp/dpplabbmogkhghncfbfdeeokoefdjegm?hl=zh-CN设置

2015-06-09 16:33:38 1914

原创 代理工具WebScarab安装

1、下载WebScarab:http://sourceforge.net/projects/owasp/files/WebScarab/20070504-1631/,其中webscarab-installer-20070504-1631.jar为安装包.2、双击打开安装,不可以放在桌面以及中文的安装文件夹内,一步步安装完成即可,打开运行。3关于代理工具有:◆WebScarab-http

2015-06-09 16:31:52 3291

原创 win7 JAVA Jdk安装与配置

安装就是傻瓜一样的一步一步的安装就可以了主要是环境变量的配置如何在win7系统上安装Jdk版本1.6   现在应该很多人都用上了WIN7,有关的教程都是基于WIN XP安装截图是方便大家看(这些图片放在windows live上)  安装JDK jdk-6u17-windows-i586.exe 此链接为SUN公司自己的下载端点,下载安装   安

2015-06-09 16:15:22 1004 1

原创 重装系统后的原装软件的环境变量重新配置

以前大三寒假回家重装系统后的备忘记录最近由于c盘实在是不堪重负,就正好利用寒假把本本重装了。可惜自己的电脑本身内存就小,重装也只有一点效果。还是进入正题吧。重装以后,导致很多软件都不能用了。还好当时自己装的eclipse,jdk,还有那个Android的环境不在系统盘。由于是上个学期才接触的这些,不知道重装会造成什么影响。这下知道了,写在这里也好方便。Eclipse是可以用的,然后以前没有

2015-06-09 16:06:38 4889

原创 python igraph whl文件的安装

很久没有去lfd上下载新的python包了由于最近要用到igraph这个包,于是去lfd,但是发现这个网站已经非常不稳定了,而且以前可以下载到exe的文件,现在都是变成了whl文件,看网上好多网友说,whl文件就是一个压缩文件,可以把whl的后缀改为zip然后再解压缩,但是这里我们还是用pip进行安装。看网上好多人都是通过ez_setup进行安装的,很多网友说这个已经过时了,不知是否,反正我这里没

2015-06-09 15:20:04 3248

原创 在win7(32)以及xp上python环境的搭建

以前自己搭建时写的博客记录,搬到自己这个csdn新博客中,以备以后的翻阅虽然之前按照前一篇博客以及更多的博客在win7(64)上搭建python环境还算是比较顺利。今天在win7 32以及xp上出现了在64未出现的问题。可能是由于是校园网导致的在连接国外资源库的时候很慢导致的。出现的问题一直都没有解决办法,也花费了很久的时间,今天终于搞好了搭建成功了,先来写一下表示庆祝。要是你也有类似

2015-06-09 15:12:10 1414

原创 python win7(64位)环境配置以及相关工具包的安装

最近自己又要使用到python里面的一个比较强大的库igraph,由于是换了实验室的电脑,python相关环境和工具需要重新配置,就翻到以前自己写的博客,发现自己以前写的博客对自己还是很有用的,就把之前的博客搬到现在我这个新博客中。首先按照博文链接:http://blog.sina.com.cn/s/blog_8af106960101d11f.html  win7(64)python环

2015-06-09 15:07:26 2739

原创 函数重载

重载函数必须形参不同,形参不同是指形参个数不同或者形参类型不同。而不能仅形参的参数名不同,因为在前面的我的文章中低层可以看到,函数低层实现不会有函数名这个东西的,也不能仅是函数返回值类型不同

2015-06-04 10:59:25 370

原创 函数默认形参

默认形参值的作用:函数声明时可以预先给出默认的形参值,如果函数调用是给出实参值,则使用实参值,否则采用预先给出的默认形参值。int add(int x=5,int y=6){   return  x+y;}void main(void){   add(10,20); //10+2    add(10); //10+6    add()

2015-06-04 10:43:14 1494

原创 inline 内联函数

在函数调用时像宏定义一样把函数体代码展开,节省了参数压栈,恢复现场等的函数调用的时间空间开销。与宏定义的区别是,宏定义是在预处理的时候,内联函数是在编译器执行的时候。宏的缺点,不能访问对象的私有成员,容易产生二义性,有时候需要加上括号。用关键字inline,但是类中的函数不管有没有inline一般默认为内联函数。要注意使用内联时注意代码的暴露。

2015-06-04 10:35:10 521

原创 CSAPP 深入理解计算机系统 Buflab实验,缓冲区溢出攻击实验(6)

level4前面4个level都是栈基址是固定的,所以我们可以猜测到栈帧的结构进行覆盖篡改,这一关就是引入了缓冲区溢出攻击的一种保护措施,就是栈基址随机化,让栈基址不可以猜测,我们来实施缓冲区溢出攻击,那么我们就要用到nop雪橇了。nop只是执行eip自加1不进行其他的操作。在我们无法猜测的时候,只需要找到最大的地址,然后前面用nop雪橇那么只要在nop段中都会自动划入。这一level用的

2015-06-01 21:06:45 7084 4

原创 CSAPP 深入理解计算机系统 Buflab实验,缓冲区溢出攻击实验(5)

level3前面的几个实验都是不管是去执行别的函数比如bang还是去执行我们自己的exploit的函数,最后都没有返回就退出了,我们通过我们的漏洞利用代码可以修改内存(比如把全局变量修改为我们的cookie)修改寄存器中的值,比如当前的level3,我们都把原来的恢复现场需要用的返回地址和原test的ebp给破坏了,这一关中,我们将修复这些被我们破坏的栈状态信息,让最后还是回到test中,让被

2015-06-01 21:04:52 6462 1

原创 CSAPP 深入理解计算机系统 Buflab实验,缓冲区溢出攻击实验(4)

level2Level2是更进了一步,也是不返回到test,而是去执行函数bang,但是区别是bang也要传入参数,但是参数是是一个全局变量,这里就是不同于level1那样在栈上覆盖了,因为全局变量要去内存地址中修改了,但是又不能调用个一个可以修改全局变量的函数,这里就只能利用我们的exploit代码了,让我们的exploit代码具有执行这些功能的函数,那么怎么执行起来呢,那就是把区别与之前是

2015-06-01 20:19:28 8515

原创 CSAPP 深入理解计算机系统 Buflab实验,缓冲区溢出攻击实验(3)

Level1Level1是和level0一样调用完getbuf以后我们不返回getbuf的调用者test而是去执行fizz函数,区别就是这个fizz函数要求我们传入参数,而且传入的参数必须是我们的cookie。所以在level0的方法我们轻松的知道了如何去执行fizz,就是用fizz函数的入口地址去覆盖返回地址,这里的关键就是找到fizz函数的参数从栈中的什么地方传入的,然后我们把我们的coo

2015-06-01 19:46:30 6990 2

原创 CSAPP 深入理解计算机系统 Buflab实验,缓冲区溢出攻击实验(2)

Level0首先是test函数和getbuf函数以及smoke函数的c代码如下: Level0 就很简单,就是本来test函数调用getbuf函数,调用完以后还返回test函数,现在我们要做的是调用getbuf函数后,通过输入我们的exploit,使得调用完以后不返回test函数了而是执行smoke函数。这里的实现就很简单,只需要输入超出缓冲区大小的字符串来覆盖到g

2015-06-01 19:26:33 7972 2

原创 CSAPP 深入理解计算机系统 Buflab实验,缓冲区溢出攻击实验(1)

由于实验太长所以还是采用分开其实感觉之前做过那个bomb实验以后,这个实验相对来说还是很容易的,主要是要搞懂缓冲区溢出原理,以及堆栈的过程,函数调用的实现过程,做完这个实验如果认认真真的做完,对于堆栈的过程,还有缓存溢出攻击的原理就会掌握的比较清楚的。个人感觉实验设计的还是非常的好的,非常值得做一做。做这个实验首先是要建立在bomb实验和对函数调用栈过程的基础上,如果你觉得你理解起来有困难

2015-06-01 19:18:53 18170

原创 底层理解函数调用实现过程 栈结构 栈过程

首先寄存器使用惯例:eip :指令地址寄存器,保存程序计数器的值,当前执行的指令的下一条指令的地址值,16位中为ip,32位为eip。eip不可以直接赋值,一般都是cpu自动加1来更新,指令call和ret以及jmp可以改变eip的值。另外汇编代码格式有ATT和intel格式,gcc和objdump的默认格式就是ATT。几个小区别,1首先是指令ATT汇编指令后面有一个l,比如intel格式

2015-05-31 18:26:25 3156 1

原创 深入理解计算机系统 perflab 程序性能优化实验

自从上次实验3bomb已经过去很久了,昨天周六下午刚刚验收完所带班级的必做实验的最后两个,最近一直很忙,也没有来更新了,其实不是最近应该是每天都好忙,最近一直还在看论文做实验。验收前周五拿出时间来看了一下最后两个必做实验。一个是perflab,性能实验,这个实验主要是考察的课本中的第五章的程序优化的一些知识,通过优化程序的核函数,然后来对比自己和原始函数的CPE和加速比。这个实验主要考虑一

2015-05-31 11:04:50 17691

原创 spy 26 When the first input is a message identifier, the second input must be a string.错误

这个是想用spy画出来不同颜色的。出现的错误,这个错误也是我用了很久才解决的,网上没有具体的很好的解决办法。这里我是这样解决的,就是考虑到可能是由于我的matlab版本太低了,因为从本科通信专业开始就一直用matlab编程所以都用的matlab7.0我就去别人那里考了一个matlab2010a的spy.m替换掉我原来的spy.m系统库中的,然后重启matlab,果然就解决了。spy.m

2015-05-30 20:47:21 1166

原创 Missing variable or function matlab错误

??? Error: File: D:\matlab\work\huitu.m Line: 6 Column: 7 Missing variable or function.这个错误如果没有找对解决办法还是会很浪费时间的,这个错误其实就是检查一下代码中的所有的标点符号,尤其是引号是不是英文格式的,可以把输入法切换成英文的然后再把所有的引号重新输入一遍就会解决。

2015-05-30 20:40:57 10348 1

原创 该虚拟机似乎正在使用中的错误解决办法

今天打开虚拟机的时候一直弹出来,该虚拟机正在使用中,而且还有一个红色的叉,就想起来应该是昨天做实验的时候未能正常关闭,实验室的电脑真的是太老了,而且内存又小,经常很卡,所以导致虚拟机这个样子了就。。。。到网上查了一下记录下来解决办法:有时未正常关闭 VMware虚拟机会提示:该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按

2015-05-30 20:26:51 2405

原创 引用与数组,引用与类,引用与返回值,引用与多态,const引用,引用类型

引用(reference)1 &不是取地址,只是引用的标示符号。2 引用必须被初始化,因为引用是被引用对象的别名,那就要先要有被引用对象,比如一个人有一个绰号,那么引用相当于这个绰号,那么必须有一个绰号对应的人这个对象。一旦定义这个别名就不可以再作为别的变量名了。3 引用本身是有地址的,一般是一个4字节的内存来保存,被引用对象的地址,但是由于编译器的优化,每次碰到引用就会用被引用对象的

2015-05-24 20:35:11 608 1

原创 从汇编和高级语言的角度理解传值方式,传值,传引用,传指针的本质机制与区别。白话通俗易懂。

函数的传参与返回值的方式有传值和传递引用,c语言中就是传值,而c++扩展传引用。而传值分为传递值(实参的值,此时形参是实参在内存中的一份拷贝,形参在使用时分配内存,结束时释放,实参和形参在内存中的地址不同,因此对形参的改变不会改变实参)传值的另外一种是传指针(传递的值是实参的地址,此时形参的值为实参的地址,所以对形参的修改就会修改实参的值)而传引用,从高级语言的层面看,引用是实参的别名

2015-05-23 21:22:28 1537

原创 从汇编的底层代码实现角度深入理解形参和实参

形参是在函数定义时给出的参数,实参是主调函数中调用某一个函数时给出的。形参和实参的作用是实现主调函数与被调函数之间的数据传递,也就是我们通常所说的传参。形参实际是实参在被调函数中的一份拷贝,调用时压入栈中,分配内存,当调用函数结束,内存就会释放,那一份拷贝随之释放。从底层汇编代码来看,主调函数在调用另外一个函数的时候,会先将参数传入,调用函数是通过栈过程来实现的,被调函数把参数压入栈中

2015-05-23 16:36:15 1575

原创 const详解

const是一个关键字,用来限定所修饰的内容不可以再被更新。1 const与指针:第一种:int const *p 是指指针指向常量,指针所指向的内容不可以变,指针本身的值可以变,也就是指针的指向可以变。可以看到  int const (*p),*p就是p指向的内容。含义理解:仓库管理员可以去任何一个仓库,但是不可以动仓库里面的东西。int const *p 与 const int

2015-05-23 15:44:12 629

原创 线程与进程

首先,应用程序是一个存储在计算机系统的硬盘等存储空间中的静态文件,而处于可执行状态中的应用程序称为进程,进程是应用程序的一个执行过程。从操作系统角度看,进程是操作系统分配内存,cpu时间片等资源的基本单位,为正在运行的程序提供运行环境。在unix操作系统中,进程是系统资源分配的基本单位。Unix操作系统也会自己启动进程,用于管理内存资源以及对用户进程进行调度,无论是操作系统自己创建的进程还是由

2015-05-21 20:25:33 462

转载 C++中Static作用和使用方法

转载地址:http://blog.csdn.net/artechtor/article/details/2312766面试的时候经常会遇到static的问题,特意发现上面那篇博客总结的很好,只是原作者写的很多地方不够总结,有很多重复的地方。1、什么是static?       static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。2、为什么要引入s

2015-05-21 15:18:25 462

原创 CSAPP 深入理解计算机系统课程实验 bomb实验 反向编译 汇编(4)

隐藏关卡。Secretphase这个隐藏关卡还是很难发现的,自己带的班上的学生中,仅有3个学生发现并解除了炸弹。中间也出现了一些小小问题,在给他们验收的时候也有意识的去引导他们发现一些小问题,并讨论解决。首先是隐藏关卡的发现,其实在汇编代码中就有一个secret_phase.就是看怎么跳到隐藏关卡了,搜索发现,是通过phase_defused作为入口点的。其实这里可以不分析这个函数,看到在

2015-05-20 20:30:09 5104 1

原创 CSAPP深入理解操作系统 课程实验 bomb 反向编译 汇编(3)

第四关: 首先也是栈开辟:然后由第三关以及前面对sscanf函数的分析可知,这里应该也是要输入两个数。参数1从-0xc(%ebp)加载,参数2从-0x10(%ebp)处加载。0x804a23e应该里面的内容也是sscanf的输入格式之类的。返回值要等于2,不然会引爆炸弹。接一下来一段说明输入的第一个参数的范围要在0-14之间接下来,赋初始

2015-05-20 16:34:04 5529 1

原创 CSAPP课程实验 bomb实验 拆炸弹实验 (2)

关卡1-3 phase1-3正式进入关卡1,phase_1首先是关卡1的汇编代码为:可以看到前3句是非常熟悉的栈开辟代码,下面一起来看一下基本的栈调用过程的汇编代码:在gcc下是AT&T格式的,源操作数,目的操作数Push  %ebp                     保存 ebp原有的值,防止被新调用的函数覆盖修改,在退出函数时通过pop ebp 恢。ebp每次

2015-05-19 20:39:52 13057 1

原创 CSAPP课程实验 bomb实验 拆炸弹实验(1)

由于内容较长,所以打算分成几个部分来写。实验准备知识:实验三是CSAPP课程中的bomb炸弹实验。一个非常有意思的实验。实验主要提供了2个文件,一个bomb二进制可执行文件,一个bomb.c C源文件。实验主要设置6个关卡phase,要求你每一关输入一个特定的字符串,来拆掉炸弹。主要是考察对汇编语言的熟悉理解程度,反汇编和逆向工程以及gdb调试。感觉datalab主要是对应教材的第二章

2015-05-19 20:26:35 24949 1

原创 CSAPP课程与实验

这个学期一直很忙,还没有入学,就预先收到了导师对CSAPP课程助教的邀请,去网上了解了一下CSAPP课程,感觉非常有用的一门课,可惜当年我们读大学的时候没有开。今年这个学期我们学校也是第一次课程改革,将大二的计算机组成这门课换成了CSAPP。教学模式也是完全效仿国外教学制度,大班授课,小班辅导,由11班级的大班,5个授课老师,由于是第一年课改,之前没有学过这门课程,做起来这门课的助教的任务和压力也

2015-05-19 11:17:28 6113

原创 又重新开通了csdn博客

记得09年刚入大学时,注册了一个csdn账号,后来csdn密码泄露,后来那个博客就没有再使用了。一直以来也没有写博客的习惯,到论坛逛博客也都是只看不发言,平时每天都是争分多秒的过的,感觉自己每次边学习边记录的习惯,比较高效,毕竟博客还要特定的编辑,而且有时候自己心里那样理解的,但是写成博客,就要对读者负责,要注意自己的语言表达方式。一直以来自己一直保持着总结记录自己的学习过程的习惯,只是整理的

2015-05-19 11:14:46 667

空空如也

空空如也

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

TA关注的人

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