上一页 1 2 3 4 5 6 7 8 ··· 11 下一页
摘要: int *p = NULL 和*p = NULL 有什么区别? 很多初学者都无法分清这两者之间的区别。我们先看下面的代码: int *p = NULL; 这时候我们可以通过编译器查看p 的值为0x00000000。这句代码的意思是:定义一个指针变量p,其指向的内存里面保存的是int 类型的数据;在定义变量p 的同时把p 的值设置为0x00000000,而不是把*p 的值设置为0x00000000。这个过程叫做初始化,是在编译的时候进行的。明白了什么是初始化之后,再看下面的代码: int *p; *p = NULL; 同样,我们可以在编译器上调试这两行代码。第一行代码,定义了一个指针变... 阅读全文
posted @ 2012-06-17 21:07 yarpee 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 转载自http://blog.csdn.net/dajuan1989/article/details/7307671文章:Run-time Detection of Heap-based Overflows作者:William Robertson, Christopher Kruegel, Darren Mutz, and Fredrik Valeur(University of California, Santa Barbara)声明:自己的理解不一定很透彻,对于自己就当笔记,不是逐字句翻译的。仅供大家参考,若有错误或不当之处欢迎批评指正!摘要:缓冲区溢出是如今网络上最常见的攻击类型之一。虽 阅读全文
posted @ 2012-06-07 21:12 yarpee 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 对ruby不熟str = [0x77d80787,0x77403680,0x77402680]puts str.pack('V').unpack('H*') 阅读全文
posted @ 2012-06-05 18:19 yarpee 阅读(467) 评论(0) 推荐(0) 编辑
摘要: /*This is a proof of concept of buffer overflow exploitation with DEPbypass on Windows XP Professional SP3 english updated on December 9,2009 with DEP manually set to OptOut so enabled for all processes,except the ones that are put in the exception list and this programis not.This source has been co 阅读全文
posted @ 2012-05-31 21:53 yarpee 阅读(1202) 评论(0) 推荐(0) 编辑
摘要: wget -O - 'http://www.phrack.org/issues.html?issue=61&id=9&mode=txt' | head -n 4640 | tail -n 3239 | uudecode -o - | tar xzf -If you have wget and uudecode installed, you'll find yourself with a directory named 'clet.v1.0.0-sid'. Otherwise, install wget and uudecode and t 阅读全文
posted @ 2012-05-28 09:33 yarpee 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 程序编好后需要调试和检测,不经过调试的程序是靠不住的。Unix下调试一般使用dbx,Linux下肯 定选择基于GNU的gdb。但调试过程中的core dump往往使你无从下手,虽然你可以用 gdb target core来看出问题时的状况,但如果core dump时堆栈被破坏掉了的话,将是很棘手的问题。 事实上问题之所以棘手的原因往往在于,早在core dump发生几百年前你的一个strcpy(sURL,&sSrcLine[iIdx]),就已经把内存搞的乱七八糟,但因为C语言的健壮性和C编译器保持沉默的高级特性使得你无法仅仅通过core文件就能轻松找的产生问题的真正语句。 Ration 阅读全文
posted @ 2012-05-26 22:14 yarpee 阅读(977) 评论(0) 推荐(0) 编辑
摘要: 0x04 源码解读下面以decoder_jump_header为例来说明解码部分unsigned char decoder_jump_header[] = {0xEB, 0x10, 0x5B, 0x31, 0xC9, 0x66, 0x81, 0xE9, 0xA1, 0xFE, 0x80, 0x33, 0x99, 0x43, 0xE2, 0xFA, 0xEB, 0x05, 0xE8, 0xEB, 0xFF, 0xFF, 0xFF};echo -ne "\xEB\x10\x5B\x31\xC9\x66\x81\xE9\xA1\xFE\x80\x33\x99\x43\xE2\xFA\xEB 阅读全文
posted @ 2012-05-24 17:09 yarpee 阅读(2325) 评论(0) 推荐(0) 编辑
摘要: shellcode的初级变形的一点点总结,大部分搜集、翻译,少量原创0x01 病毒上重定位问题0x02 shellcode解码0x03 一个unix例子0x04 源码解读0x05 参考shellcode xor编码/解码器是一种较为初级的shellcode变形的方法,当然它从中采用的方法跟病毒上的方法有些类似0x01 病毒上重定位问题病毒上的解决重定位的方法,可以方便的用到shellcode的设计中。下面部分摘自hume的<<病毒编程技术>>在病毒技术上至少有两种方法可以解决重定位的问题:A)第一种方法就是利用上述PE文件重定位表项的特殊作用构造相应的重定位表项。在感染 阅读全文
posted @ 2012-05-23 22:02 yarpee 阅读(1723) 评论(0) 推荐(0) 编辑
摘要: 引子:__inline float _floor(float f){ static int _n; _asm fld f _asm fistp _n return (float)_n;}这个函数进行float转换 fld是压一个浮点数入栈 fistp是出栈。 所以这段代码其实是用来四舍五入的。如果你在8086编译器中编程,,上述指令无法运行,因为8086没有浮点处理器,需要协处理器。 FPU有8个80位的寄存器(编号0-7),使用扩展双精度格式存储操作数。当内存中的数据载入数据寄存器时,如果数据格式不是扩展双精度格式,则在载入过程中进行格式转换。8个寄存器组成一个循环堆栈,栈顶纪录保存... 阅读全文
posted @ 2012-05-23 13:36 yarpee 阅读(769) 评论(0) 推荐(0) 编辑
摘要: 介绍多阶段加载是基于如下这种想法:如果一个小片段的shellcode可以在目标上执行,理论上可以通过网络连接、传输和执行其他的shellcode,或者甚至是一个完整的二进制可执行文件。关键的想法是对加载的最终程序进行分级。这样子,只有严格大小的代码会在第一阶段加载。这种想法在一篇优秀的文章<<Understanding Windows Shellcode>>中有详细介绍。第一阶段:shellcode加载这是在加载链中至关重要的一步。代码必须够小,没有NULLs值并且必须能够在各种平台上执行。它的主要功能是找到用于连接的套接字描述符,并通过它读取额外的数据。当完成时,加载 阅读全文
posted @ 2012-05-22 21:57 yarpee 阅读(668) 评论(0) 推荐(0) 编辑
摘要: 有安全隐患,待查看chmod 4755 /usr/bin/python2.4 阅读全文
posted @ 2012-05-20 22:26 yarpee 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 目前接触的HOOK总结,学习HOOK只是为了让我对内核更加熟悉,我对那些毛的病毒木马没毛兴趣。Windows平台上HOOK:应用层HOOK:1.消息HOOK:局部钩子、全局钩子、全局低级键盘钩子之类2.IAT HOOK:通过修改IAT(导入表)表中的地址 过程就是先取DOS头,再取PE头偏移,再获取导入信息,其中的FirstThunk就是IAT偏移,再遍历,这样就找到了IAT表3.EAT HOOK:(这个没有实际去做,知道思路) 详见http://bbs.pediy.com/showthread.php?t=62574内核级HOOK:内核hook基本上大同小异,都是获取相关函数的地址后修改成自 阅读全文
posted @ 2012-05-19 15:16 yarpee 阅读(928) 评论(0) 推荐(0) 编辑
摘要: Q:linux下同时存在当静态库和动态库同名时,gcc命令会使用哪个库文件呢A:gcc会优先选择动态库# lshello.c hello.h main.c#在来创建静态库文件libmyhello.a和动态库文件libmyhello.so。# gcc -c hello.c# ar -cr libmyhello.a hello.o (或-cvr)# gcc -shared -fPCI -o libmyhello.so hello.o# lshello.c hello.h hello.o libmyhello.a libmyhello.so main.c通过上述最后一条ls命令,可以发现静态库文件l 阅读全文
posted @ 2012-05-15 13:44 yarpee 阅读(1429) 评论(0) 推荐(1) 编辑
摘要: 太精辟了http://blog.csdn.net/lzshlzsh/article/details/6066628http://www.ibm.com/developerworks/cn/linux/l-elf/part1/http://www.ibm.com/developerworks/cn/linux/l-elf/part2/ 阅读全文
posted @ 2012-05-06 21:43 yarpee 阅读(221) 评论(0) 推荐(0) 编辑
摘要: -fPIC产生位置无关代码(PIC),一般创建共享库时用到。在x86上,PIC的代码的符号引用都是通过ebx进行操作的。(gdb) disassemble mainDump of assembler code for function main: 0x0804840a <+0>: push %ebp 0x0804840b <+1>: mov %esp,%ebp 0x0804840d <+3>: push %ebx 0x0804840e <+4>: and $0xfffffff0,%esp 0x08048411 <+7>: call 0 阅读全文
posted @ 2012-05-06 14:50 yarpee 阅读(394) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 11 下一页