Archive for the ‘平台’ Category

MBR

MBR(Master Boot Record,主引导记录)位于硬盘的第一个扇区,注意,不是系统分区的第一个扇区。用WinHex打开,工具--->打开磁盘--->选择Physical Media中的硬盘,而不是逻辑分区中的系统分区,偏移0x000-0x1FF处。

MBR由主引导程序、DPT(Disk Partition Table,硬盘分区表)和硬盘有效标识(0x1FE-0x1FF处的0x55AA,一个硬盘有没有格式化好像就看它)三部分组成。其中主引导程序占446bytes(0x000-ox1BD),DPT占64bytes(0x1BE-0x1FD),硬盘有效标识2bytes(0x1FE-0x1FF)。

MBR不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它,但可以通过命令来修改和重写。

Win7中主引导程序的代码段为0x000-0x162,0x163-0x1BD是数据段。0x163-0x17A为“Invalid partition table\0”;0x17B-0x199为“Error loading operating system\0”;0x19A-0x1B2为“Missing operating system\0”。

MBR的百度百科(里面关于DPT的部分有误,请参考下面的链接)

Windows 7的MBR分析

硬盘逻辑结构简介(硬盘的一些基本概念)

如何将MBR反汇编

INT 13(BIOS的硬盘读写中断)

花了接近一天的时间,终于完成了XP.MBR的分析,先把分析结果发上来,资料再补充。

XP.MBR

重要修正:怎么说呢,技术还很菜,难免疏漏。用bochs跟了遍,修正下.txt文档。

Read more

FS

Ring0: FS--->KPCR

Ring3: FS--->TEB

kpcr、prcb、tss、fs、tr

IE接口实现浏览器窗口

花了两天时间终于简单地实现了利用IE接口实现自己的浏览器窗口。

关于IE接口的MSDN文档太多了,使用IWebBrowser2接口转到URL、加载HTML、解析HTML这些功能一般都会从各种途径知道。但是如何使用自己的窗口来显示网页的资料少之又少。下面是些参考资料:

微软示例代码(里面的htmldlg.exe有用到MSHTML.DLL的ShowHTMLDialog导出函数)

Embed an HTML control in your own window using plain C(讲解详细,很好的参考资料)

Display a Web Page in a Plain C Win32 Application(和上一篇差不多,就没仔细看了)

要想通过自己的窗口来展示网页,必须实现三个接口IOleClientSite、IOleInPlaceFrame、IOleInPlaceSite。这三个接口用于OLE对象(即这里的CLSID_WebBrowser)和容器窗口交互、通信。下面是实现存档:

IEInstance.h

IEInstance.cpp

WinMain.cpp

另外,可以通过CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER, IID_IWebBrowser2, (LPVOID *)&m_pIWB2);再调用IWebBrowser2的Navigate2来用IE打开指定网页。

RegisterClass

 

 

 

 

 

 

 

 

 

 

 

 

RegisterClass逆向

http://bbs.pediy.com/showthread.php?t=139853

IsDebuggerPresent

这个逆向太简单了,不解释。

无觅相关文章插件,快速提升流量