Jerry's blog

SICP-solution-1.6

这个问题问:如果用new-if替换if的话,原来的计算平方根程序会发生什么情况?我刚开始没想明白,后来看网上的提示忽然懂了。lisp是应用序求值语言,比如函数调用的过程中,参数是表达式的形式,则必须把表达式的值计算出来。这样是为了防止重复计算。但有一种情况比较特殊:if。看下面的程序:(define (p) (p)) 如果调用p这个函数的话,则会永远递归下去。(if (= 9 9) 0 (p......

Efficient Reading of Papers in Science and Technology

翻译原文:http://www.cs.columbia.edu/~hgs/netbib/efficientReading.pdf 为什么要阅读?在开始阅读一篇论文之前,脑子里先想想为什么要干这件事。你想从中得到什么呢?这个问题的答案决定着你如何阅读论文。如果你只想知道这篇论文的概述,那么简要的浏览就够了。如果你打算把这篇论文的内容展示给别人,那你得好好挖了,直到你把这篇论文的观点都弄明白......

Return-to-libc

本文简要总结网上的一篇博客 http://www.ibm.com/developerworks/cn/linux/1402_liumei_rilattack/ DEP与Return-to-libc攻击缓冲区溢出通常需要将shellcode注入到堆栈中,然后覆盖函数的返回地址,指向shellcode,执行恶意代码。这种攻击方式可以概括为先写后执行。数据执行保护策略(Data Executi......

shellcode开发

shellcode开发是一件非常麻烦的事情,programmer必须要掌握汇编语言。网上搜集到的shellcode都是机器码,要想在本机调试运行,我们可以使用下面简单的代码来装载:char shellcode[]= "...." //十六进制的机器码// 如果shellcode调用了其它的库,这里得include进来void main() { __asm { ......

缓冲区溢出

环境: Windows XP SP3, VC6.0 先上代码: #include<stdio.h>#include<string.h>#include<windows.h>char name[] = "\x41\x41\x41\x41""\x41\x41\x41\x41""\x41\x41\x41\x41" // 覆盖EBP"\x12\x45\xfa\......

ARP攻击

kali环境下arp攻击实例 开启两台虚拟机,分别是kali和ubuntu。两台虚拟机必须在同一网段。ubuntu的ip: 192.168.99.162,网关为: 192.168.99.1kali自带了arpspoof攻击,若得知对方ip和网关,以及使用的网卡。那么使用下面的命令,则可以使对方上不了网arpspoof -i [网卡] -t [ip地址] [网关地址] 在kali中输入命令......

堆溢出

堆溢出技术介绍堆是什么?在程序运行过程中,每个线程都会被分配一个栈,用来存储局部变量。但是对于不确定大小的变量,例如malloc()分配的动态空间,则被存储在堆上。 堆溢出举个例子#include<windows.h>#include<stdio.h>#include<stdlib.h>int main() { HANDLE hHeap; ......

使用Hexo搭建个人博客

戳我 步骤 安装hexo 选择一个Hexo主题,到对应的repository里面下载 启动hexo,浏览器访问这里 将代码上传到仓库中。如果是上传到usename.github.io里面,则需要push到master分支。 另起一行 js joke ...