- 博客(15)
- 收藏
- 关注
原创 5min学会WinDBG条件断点
1.前言 很多时候我们可以使用Spy++查看某个窗口的消息,但是有一定的局限性。 以编辑控件为例,我们打开Spy++截获应用程序的EM_GETTEXTRANGE消息,却只能看到TEXTRANGE结构的指针值,看不到结构的内容。 如果想要详细查看消息的WPARAM和LPARAM参数,Spy++是无能为力的。 但是可以通过W...
2019-04-22 12:17:07
661
原创 k组合生成问题-非递归
k组合生成问题,是一种非常常见的问题。例如,我们在玩游戏当中,需要从 n 种宝石当中选择 k 种不同的宝石佩戴,这就是一个 k 组合的生成问题。当 n = 4,k = 3时,按照字典序生成的 k 组合如下:1 2 31 2 41 3 42 3 41.分析看第一个 k 组合,是以 1 开始的一个序列,包含了 1 到 n 中最小的 k 个数;而最后一个 k 组合则以
2017-10-07 10:30:52
468
原创 读懂源码系列-FileZilla Server 设计原则分析-socket 事件处理流程(4)
1.前言 上一篇讲到 socket 2.处理流程static LRESULT CALLBACK CAsyncSocketExHelperWindow::WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)void CListenSocket::OnAccept(int nErrorCode)
2017-09-07 14:09:16
606
原创 读懂源码系列-FileZilla Server 设计原则分析-socket 事件响应流程(3)
1. 网络模型初探 FTP 服务器会监听指定的 21 端口,等待用户连接,这是所谓的控制连接。当需要数据传输时,客户端和服务器之间会再建立一个数据连接。 本期文章暂不涉及 FTP 协议的处理过程,重点在于梳理 FileZilla Server 的网络模型。接上一期,FTP 服务器初始化线程代码。该线程创建了 CServer 类,执行流程来到 CServer:
2017-09-07 01:16:37
599
原创 读懂源码系列-FileZilla Server 设计原则分析-入口分析(2)
1.预备知识FileZilla Server ftp 服务器是作为 Windows 服务运行的。我们来看下安装好的服务,通过 Win + R,输入 services.msc 找到 FileZilla Server FTP server:可以看到名为 FileZilla Server 的服务,指向了新编译生成的 *\Debug\FileZilla Server.exe 可执行
2017-09-06 21:13:02
1579
原创 读懂源码系列-FileZilla Server 设计原则分析-编译篇(1)
1.前言 FileZilla Server 是 Windows 下的一个开源 FTP 服务器,最近想要重温一下该开源 FTP 服务器的整体设计流程,因此重新下载了较新的源码版本。 通常随着开源代码的不断更新,会添加越来越多的功能,代码也就越来越复杂。因此,为了快速上手并了解某个开源项目,应该从最低版本看起。但是,由于之前我已看过最低版本,大概已了解项目整体设计。所以,本次分析的
2017-09-06 19:13:27
1017
原创 Mangos Zero服务器搭建简要过程及常见问题
网上的搭建教程已经有很多,该文章主要记录在Win7 64bit上搭建的简要过程,以及出现的问题。 1.源码下载 首先是下载 git for windows:Git-2.14.1-64-bit.exe。然后新建D:\mangos文件夹,在该文件夹下右键选择"Git Bash Here",打开Git命令行。 下载Mangos Zero源码:gi
2017-08-17 23:18:05
7272
原创 (二)利用导入表、导出表和重定位表定位导入函数的地址
2.清单文件 首先查看调用 MessageBoxA函数时,生成了什么指令:EXTRN __imp__MessageBoxA@16:PROCMessageBoxA(NULL,"ImportAndExport","Nothing",MB_OK); 8b f4 movesi, esp 6a 00 pu
2014-05-25 19:43:37
782
原创 (一)利用导入表、导出表和重定位表定位导入函数的地址
Windows程序中大量使用的DLL文件,主要的作用是共享二进制代码。用户级编程中,核心API都在Kernel32.dll(内存、进程和线程管理)、User32.dll(窗口管理)和GDI32.dll(绘图)中提供。我们使用这些API如MessageBoxA时,只需要包含头文件Windows.h,并且把对应的User32.lib文件提供给链接器,那么系统就把如何找到MessageBoxA的信息放入
2014-05-25 19:38:51
2159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人