123456

 
上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 39 下一页

2012年4月16日

windbg环境

摘要: 安装与配置windbg的symbol(符号)第一步下载WinDBG请通过此链接下载Web安装版的Windows SDK:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b&displaylang=en并在安装时清除所有组件的安装复选,并勾选“Debugging Tools for Windows”选项前的复选框进行安装。另外,也可以通过在以下链接下载以前版本的windbg工具:http://www.microsoft.com/whdc/devto 阅读全文

posted @ 2012-04-16 22:48 hgy413 阅读(330) 评论(0) 推荐(0) 编辑

2012年4月15日

windbg

摘要: http://www.debuginfo.com/articles/easywindbg.html 阅读全文

posted @ 2012-04-15 22:16 hgy413 阅读(101) 评论(0) 推荐(0) 编辑

2012年4月12日

PE文件与虚拟内存间的映射

摘要: PE文件与虚拟内存间的映射在调试漏洞时,可能经常需要做这样两种操作。(1)静态反汇编工具看到的PE文件中某条指令的位置是相当于磁盘文件而言的,即所谓的文件偏移,我们可能还需要知道这条指令在内存中所处的位置,即虚拟内存地址(VA)。(2)反之,在调试时看到的某条指令的地址是虚拟内存地址,我们也经常需要回到PE文件中找到这条指令对应的机器码。为此,我们需要弄清楚PE文件地址和虚拟内存地址之间的映射关系。首先,我们先看几个重要的概念。文件偏移地址(File Offset Address)数据在PE文件中的地址叫文件偏移地址。这是文件在磁盘上存放时相对于文件开头的偏移。装载基址(Image Base) 阅读全文

posted @ 2012-04-12 23:04 hgy413 阅读(374) 评论(0) 推荐(0) 编辑

2012年4月6日

OllyDbg

摘要: 1.按F9运行程序,2.ctrl+G打开跟随表达式窗口,输入的Api大小写敏感,函数名大小写必须正确3.Alt+B打开断点窗口,Always表示断点激活状态,Disable表示断点停用,按空格键可切换状态4.Alt+n打开输入输出表,Alt+C回到主窗口5.Alt+F9回到调用函数的地方.6.API函数基本采用_stdcall调用约定,参数按从右到左入栈,由被调用者清理栈中参数,返回值放在eax寄存器中,因此对API要分析其前的PUSH指令,这些指令将参数放进堆栈以传送给API调用,C代码中的子程序采用C调用约定,同线参数按从右到左入栈,由调用者清理栈中的参数。7.int3指令,机器码是CCH 阅读全文

posted @ 2012-04-06 12:04 hgy413 阅读(160) 评论(0) 推荐(0) 编辑

函数的参数

摘要: 函数传参有三种方式:堆栈方式,寄存器方式,以及通过全局变量进行隐含参数的传递1.堆栈方式:约定类型__cdecl(C规范)PASCALstdcallFastcall参数传递顺序从右到左从左到右从右到左使用寄存器和堆栈平衡堆栈者调用者子程序子程序子程序允许使用VARARG(不定参数)是否是c/c++和MFC程序默认使用调用约定__cdeclstdcall是Win32 API采用的约定方式,由于函数体本身知道传进来的参数个数,因此被调用的函数可以在返回前用ret n清理传送参数的内存栈,所以test(p1,p2,p3)__cdecl调用约定PASCAL调用约定__stdcall调用约定push p 阅读全文

posted @ 2012-04-06 11:57 hgy413 阅读(131) 评论(0) 推荐(0) 编辑

2012年4月5日

汇编注意点

摘要: 1.在进行数据传送或运算时,要注意指令的两个操作对象的位数应当是一致的,如 mov ax, bl mov al, 100h会提示错误:Operand types out of range Value out of range2.内存并没有分段,段的划分来自于CPU,段的起始地址必须是16的倍数.3.CS,IP指明了CPU当前要读取指令的地址,CS为代码段寄存器,IP为指令指针寄存器,过程为从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器,IP指向下一条指令,执行指令。清楚是IP先指向下一条指令,再执行指令。CPU只认被CP:IP指向的内存单元的内容为指令4.8086CPU不支持将数 阅读全文

posted @ 2012-04-05 18:01 hgy413 阅读(223) 评论(0) 推荐(0) 编辑

2012年4月4日

3内核对象

摘要: 今天坐着无聊,突然想到,如果A进程分配足够多的内核对象后,过一段时间A还能分配内核对象吗?,猜想应该是可以的,因为内核对象空间是由内核分配的,所以做了个小实验:我们都知道,创建线程内核对象引用计数为2,线程退出减一,closehandle减一,所以不调用closehandle,那么内核对象就会存在,直接用个工具Process Explorer直接上代码:static DWORD WINAPI WinMain(LPVOID lp);DWORD WINAPI CDEMO1Dlg::WinMain(LPVOID lp){ return TRUE;}CString GetMyLastError(){ 阅读全文

posted @ 2012-04-04 16:59 hgy413 阅读(105) 评论(0) 推荐(0) 编辑

2012年4月3日

1.错误处理

摘要: 1.$err,hr可以看到系统ERR的文字描绘 HANDLE hMutex = CreateMutex(NULL, false, L"1"); HANDLE hEvent = CreateMutex(NULL, false, L"1");右键,添加监视:第一步,调试到第一个互斥量,我们假定整个名字空间不存在重名,那么应该是成功的,看对应的监视:$err,hr返回S_OK第二步,调试到第二个互斥量很明显,同名,同类型,应该返回ERROR_ALREADY_EXISTSb7也就是183,我们去WinError.h中找183L,果然发现如下信息://// Mes 阅读全文

posted @ 2012-04-03 15:06 hgy413 阅读(179) 评论(0) 推荐(0) 编辑

2012年3月21日

Socket API简介二(tcp的状态/TCP的四次挥手/TCP和UDP的基本特性)

摘要: 一.TCP的四次挥手全双工:弄两条传输线,一条发送一条接收,发送和接收同时进行,目前的网卡一般都支持全双工半双工:猜出来了,一条传输线,发送和接收不能同时进行。单工:通信线路上的数据按单一方向传送由于TCP连接是全双工的,因此每个方向都必须单独进行关闭,这意思就是发送传输和接收传输线都要关闭(1) A进程首先调用close,我们称A端执行主动关闭,该端的TCP于是发送一个FIN分节,表示数据发送完毕(2) 接收到这个FIN的对端B执行被动关闭,这FIN由B端的TCP确认,FIN被当成一个文件结束符放在B端的进程(放在已排队等候B端的进程接收的任何其他数据之后),因为FIN的接收意味着B端的进程 阅读全文

posted @ 2012-03-21 18:01 hgy413 阅读(205) 评论(0) 推荐(0) 编辑

2012年3月20日

EDIT密码框切换

摘要: 直接加上去掉ES_PASSWORD属性不行,直接贴代码吧:void XXX::OnHideBox(){ if (m_HidePwdBox.GetCheck()) { m_PwdEdit.SetPasswordChar('*'); } else { m_PwdEdit.SetPasswordChar(0); } m_PwdEdit.Invalidate();//必须刷新下,不然换不过来} 阅读全文

posted @ 2012-03-20 17:17 hgy413 阅读(171) 评论(0) 推荐(0) 编辑

上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 39 下一页

导航