1.什么是字节对齐 已经有很多文章说过字节对齐的问题了,比如: http://zhangyu.blog.51cto.com/197148/673792/ http://blog.tianya.cn/blogger/post_show.asp?BlogID=597570&PostID=11394326 这里不再重复。总之,字节对齐是为了CPU能够更快的访问。   2.书本中的栈 在介绍函数调用的详细步骤时一定会提到一个概念–栈。在涉及到汇编时,下面这张图大家一定很熟悉...

https即http协议加上ssl协议,在使用https协议登入网站时浏览器会先生成请求,让服务器把自己的数字证书发送过来,验证通过后才能协商会话密钥进而安全的访问该站点。 1.模拟CA认证的全过程 对于一个服务器,要想实现https服务,首先要向CA申请数字证书。CA用私钥将服务器发来的申请签名后生成服务器的数字证书,用户(浏览器)想要访问https服务器,就得向服务器发送认证请求,接下...

shellcode中如果存在0x00,那么在拷贝字符串时shellcode很有可能在中间部分被割断,为了防止shellcode被破坏,通常要去除shellcode中的0x00。去0的方法有很多,这里介绍一些常用的方法: 1. 异或操作去0 mov $0x0,$eax ---> xorl $eax,$eax 1 mov $0x0,$eax  --->  xorl $eax,$e...

jdk1.7和jdk1.6在Android应用程序签名过程中有所不同。在官网中有详细说明:http://developer.android.com/tools/publishing/app-signing.html#setup   。下面具体的介绍jdk1.7下Android应用程序的签名过程。   1.签名使用工具 给Andorid程序签名主要使用到3个工具: keytool : 放在jdk安装目录/bin下 jarsigner : 放在jdk安装目录/bin下 zipalign : 放在android sdk目录bu...

在写栈溢出攻击shellcode时候,有时需要将字符串传递给某个函数或者直接使用,但是在栈中无法直接获取该字符串的地址。下面将介绍两种获取字符串地址的方法: 1.直接通过push来获取字符串的地址 Vim movl $0x65656565 ,%eax push %eax 12 movl $0x65656565 ,%eaxpush %eax 上面两句...

esp指向栈顶元素(非空) ebp始终指向上一个栈帧的ebp(所有的ebp组成了一个单链表) push完成两步操作 1. 将esp向低地址移动一格(给要入栈的元素留空位) 2. 将元素存入栈中 pop同样完成两步操作,但是顺序和push相反  1. 将栈顶元素弹出  2. 将esp向高地址移动一格 通过+x(%ebp)来访问传给被调函数的参数,通过-x(%ebp)来访问函数内部的局部变量 给函数分配栈空间时通常会先分配一片...

新装了里Ubuntu14的系统,在安装eclipse时出现eclipse最上面到菜单栏消失了,解决方法如下: 1. 新建一个eclipse.sh文件,加入如下内容,下面的路径是ecipse的路径 Vim export UBUNTU_MENUPROXY=0 /opt/eclipse/eclipse 123 export UBUNTU_MENUPROXY=0 /opt/eclipse/e...

在装Android SDK时连接不上,解决方法如下: 第一步 改hosts(linux下在 /etc/hosts): #Google主页 203.208.46.146 www.google.com #这行是为了方便打开Android开发官网 现在好像不VPN也可以打开 74.125.113.121 developer.android.com #更新的内容从以下地址下载 203.208.46.146 dl.google.com 203.208.46.146 dl-ssl.google.com **************************************** 第...

首先安装Mysql     在http://dev.mysql.com/downloads/mysql/5.6.html 中下载对应版本的Mysql源码包,然后编译安装,具体过程略过。 安装Apache     1.下载必要组件 下载apache, http://httpd.apache.org/download.cgi ,安装Apache前要先装3个组件: apr :http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz apr-util  : http://archive.apache.org/dist/apr/apr-util...

rpm命令常用参数 -i  (install)  安装 -q (query)  查询 -a (all)          所有的 -e (erase)    删除 -l  (list)         显示(显示安装包中的所有文件被安装到哪些目录下) -U(update) 升级rpm包 –nodeps           忽略依赖关系并继续操作 –force                强制操作 如强制安装删除等 –requires         显示...

gcc升级到4.8后 gdb版本太低不能用,所以要相应的升级gdb。这里采用源码安装的方式,在http://www.gnu.org/software/gdb/download/下载gdb7.6放到/opt/gdb7.6目录(其他目录亦可)下,然后 Vim ./configure --prefix=/opt/gdb7.6/gdb make sudo make install 123 ./configure --prefix=/opt/gdb7.6/gdbmak...

暑假的时候去公司锻炼了一段时间,学到了一些C++代码规范: 1.类名和函数名开头字母大写,如StartConnectToServer 2.函数参数过长好适当分行,并且逗号在最前面: C++ boost::asio::async_read(_socket,boost::asio::buffer(_head_buf, HEADER_SIZE) // read header , boost::bind(&Client::On...

在Linux下经常会需要查找一些文件的所在位置,通过一些命令能很方便的找到曾经苦苦搜寻的文件。 find find功能很强大,最主要的功能室一个根据文件名查找,还可以根据修改时间、文件类型等来查找文件。 find   路径    -name  文件名 例: Vim find / -name  'aa*' 1 find / -name  'aa*' ...

+
跳转到评论