以后会经常用到PHP,以此作备忘,算是PHP配置大全吧

WINDOWS篇(本文使用的OSWINDOWS XP SP3

本篇中使用的所有程序和框架版本以及下载地址如下:

PHP

php-5.3.10-Win32-VC9-x86.zip

下载地址: http://windows.php.net/download/

APACHE

httpd-2.2.22-win32-x86-no_ssl.msi

下载地址:http://httpd.apache.org/download.cgi

Mysql

mysql-5.5.22-win32.msi

下载地址: http://www.mysql.com/downloads/(官方下载需要注册)

继续阅读

最近温故了下16位的汇编.

用惯了MASMPLUS之后再去试试以前用过的编写器轻松汇编

发现其实轻松汇编也不错.

主要是发现2.7版本的提供了映像文件和交叉文件~

交叉文件刚好是汇编指令和机器码的对照~

这功能不错 省的载入OD了就可以直接看机器码了~

不过对于那个开始那个关联文件的对话框有点不爽~

于是顺手把它去了..

去这个对话框其实也很简单,为了熟悉机器码我们采用之间修改机器码的方式..

载入UE 来到文件偏移00077AA6处:

然后修改(括号里面的是原数据)

77AA6: 33 (56)
77AA7: C0 (8B)
77AA8: EB (45)
77AA9: 08 (F8)
33 对应    [cc lang=”asm”]xor eax,eax[/cc]
EB  08  是[cc lang=”asm”] JMP  $+8[/cc]
等于是选择了[否]

大家都知道string.h定义的strcpy函数存在严重的溢出漏洞

很多的人已经注意到这一点.

今天对strcpy,lstrcpyn函数试了一下

虽然没有strcpy那样的可以直接攻破前栈帧夺取返回地址并运行自己的代码~

但也可以攻破前栈帧夺取返回地址

在这里只对目标机子做强制关机指令

需要改的地方是在服务端源码处把注释恢复并把寄存器注释

理由你OD上的插件或者你自己编写的文件扫描程序找出[jmp eax]的机器码位置 替换shellcode的以下字符:

注意逆序~

ShellCode

FS寄存器指向当前活动线程的TEB结构(线程结构)
偏移 说明
000 指向SEH链指针
004 线程堆栈顶部
008 线程堆栈底部
00C SubSystemTib
010 FiberData
014 ArbitraryUserPointer
018 FS段寄存器在内存中的镜像地址
020 进程PID
024 线程ID
02C 指向线程局部存储指针 TLS Thread Local Storage
030 PEB结构地址(进程结构)
034 上个错误号
得到KERNEL32.DLL基址的方法
[cc lang=”asm”]assume fs:nothing          ;打开FS寄存器
mov eax,fs:[30h]            ;得到PEB结构地址
mov eax,[eax + 0ch]        ;得到PEB_LDR_DATA结构地址
mov esi,[eax + 1ch]        ;InInitializationOrderModuleList
lodsd                      ;得到KERNEL32.DLL所在LDR_MODULE[/cc]
结构的InInitializationOrderModuleList地址
mov edx,[eax + 8h]         ;得到BaseAddress,既Kernel32.dll基址