- 博客(631)
- 资源 (50)
- 收藏
- 关注
原创 gcc源代码分析的方法【总结】
看gcc-1.40有段时间了,14年左右看了一段时间,15年左右看了一段时间。现在可以说基本上明白了gcc的大部分代码。如果说能快速的明白其中的原理,总结我看代码的方法捷径我列举以下几条。第一,gcc版本低,这是成功的前提,也是一条捷径。第二,分析最基本的hello.c文件,就一条函数调用,但是已经足够。第三,发现了debug_rtx ()函数和debug_tree ()函数。
2015-01-09 19:35:38 3754 1
原创 linux-0.11硬盘集成盘的制作方法
2014年1月9日 by chenghao0511@gmail.com制作方法:把bootsect 替换 原来的makedd bs=8192 if=Image of=/dev/hd5 c h s 60 16 63之后需要更改img的分区表,需要你先备份然后再拷贝回去0x1BE到0x1CF是这个分区1的数据001231048165041E2C01000031750
2014-01-09 20:06:02 2485 2
原创 关于 bison源代码分析--gcc源代码分析之语法分析部分 的说明
已经出版的相同选题的书:LEMON语法分析生成器(LALR(1))源代码情景分析 Bison是bash的语法分析器是gcc的语法分析器。Linux其实是有三部分组成。第一部分,内核(oldlinux论坛已有讨论和linux内核完全注释等专著)。第二部分,gcc编译器,其中代码中最难也是最精彩的就是语法分析部分,靠的也是bison。第三部分,bash,bas...
2013-12-26 08:17:34 3405 1
原创 nc的一个bug,nc ip port -e cmd.exe 命令后ctrl+c后不会关闭连接[已解决]
nc112.rar by chenghao0511#gmail.com现象是nc ip port -e cmd.exe一端的cmd.exe没有销毁。nc -lp port的一端nc输入没有反应。需要ctrl+c结束。doexec.c里面的一段:BOOLdoexec( SOCKET ClientSocket
2013-04-20 13:13:15 3598
原创 linux-0.11调试教程,minix-386-fd0-by-chenghao0511,最小的操作系统,只有360k。
http://pan.baidu.com/share/link?shareid=269130&uk=453348606minix-386-fd0-by-chenghao0511,最小的操作系统,只有360k。CSDN下载地址:minix-386-fd0-by-chenghao0511,最小的unix操作系统需要下载Bochs,下载安装后。解压下载的文件,直接
2013-02-06 23:55:13 4646 44
原创 linux-0.11调试教程,源起,从linux内核完全注释的几处错误说起
本系列文章调试linux-0.11,大部分都是一些新内容,小部分是对代码的一些印证。 另写了一些调试工具,比如readizone,readblock,readinode这些工具对学习linux-0.11操作系统很有帮助。当然还需要stat和hexdump工具的配合。 fdisk for linux-0.11 开始到-13/3/15的文章
2013-01-15 11:32:14 4779
原创 tftpd的前半生和tftpd的后半生
tftpd的前半生第一部分:主要是RtlpStartThreadpoolThread函数位置:[d:\srv03rtm\base\ntos\rtl\worker.c @ 520]创建线程,startaddress为RtlpWorkerThreadtftpd的后半生主要是运行RtlpWorkerThread线程里面的RtlpApcCallout函数Function(Status, Context1, Context2) ;
2024-11-05 15:51:16 601
原创 Tftpd.exe源代码分析----TftpdIoPostReceiveBuffer函数分析
Tftpd.exe源代码分析----TftpdIoPostReceiveBuffer函数分析
2024-10-23 19:04:39 801
原创 tftpd.exe源代码分析第一篇get 2.txt
tftpd.exe源代码分析第一篇get 2.txt第一部分:TftpdIoCompletionCallback函数调用TftpdProcessReceivedBuffer函数第二部分:TftpdProcessReceivedBuffer函数调用TftpdReadRequest函数第三部分:TftpdReadRequest函数调用TftpdContextAquire函数和然后调用TftpdContextAllocate函数
2024-10-21 20:57:51 343
原创 tftpd.exe开启调试
globals.parameters.debugFlags if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "System\\CurrentControlSet\\Services\\Tftpd\\Parameters", 0, KEY_QUERY_VALUE, ¶meters) != ERROR_SUCCESS)
2024-10-20 18:44:21 252
原创 xxxCreateWindowEx函数分析
xxxCreateWindowEx函数分析xxxShowWindow(pwnd, sw | TEST_PUDF(PUDF_ANIMATE));
2024-10-13 17:11:28 627
原创 USER32!DispatchMessageA调试记录
00 scrnsave!DefaultProc01 USER32!InternalCallWinProc02 USER32!UserCallWinProcCheckWow03 USER32!DispatchMessageWorker04 USER32!DispatchMessageA05 scrnsave!main06 scrnsave!mainCRTStartup07 kernel32!BaseProcessStart
2024-10-11 10:32:38 426
原创 xxxRealInternalGetMessage分析之While循环分析----后传第二部分win32k!xxxDoPaint函数分析
xxxRealInternalGetMessage分析之While循环分析----干货第二部分win32k!xxxDoPaint函数分析
2024-10-09 17:24:54 498
原创 OutputDebugString函数分析
此函数允许应用程序将字符串发送到其调试器用于显示。如果应用程序未被调试,但系统调试器处于活动状态,系统调试器将显示字符串。 否则,此功能无效。
2024-10-05 17:01:09 1039
原创 MMain函数定义为WinMain函数看port1632.h和pwin32.h文件
MMain函数定义为WinMain函数看port1632.h和pwin32.h文件
2024-09-25 20:31:35 237
原创 遍历9个格子winmine!StepBlock和遍历8个格子winmine!StepBox的对决
++i 返回加1后的值,碰到X1Y7cBombs等于0,所以++iStepMac等于2 if (++iStepCur != iStepMac)成立所以会遍历8个格子。其他情况iStepMac等于1,++iStepCur等于1,直接返回了。所以会到X1Y7的时候会遍历8个格子。X0Y6 X1Y6 X2Y6X0Y7 X3Y7X0Y8 X1Y8 X2Y8返回,继续遍历第五个格子X2Y7
2024-09-23 16:42:12 577
原创 扫雷windbg调试X3Y8位置
先遍历完8个部分后,在向下一层递归 x = rgStepX[iStepCur]; y = rgStepY[iStepCur];遍历的时候遇到周围有0个雷的时候iStepMac会加一。
2024-09-23 10:26:29 888
原创 winlogon屏幕保护返回桌面调试记录
winlogon屏幕保护返回桌面调试记录Switching desktop from ScreenSaver to Winlogon
2024-09-22 08:52:12 836
原创 扫雷源代码gcc通过
/存放排查出的雷的信息用于显示。//存放布置好的雷的信息。上面两条处理后可以在vs2019里面编译通过。#include <stdlib.h>去掉。scanf改为scanf_s。//坐标位置雷的个数。
2024-09-19 23:14:32 630
原创 winlogon调试记录
winlogon调试记录第一部分:准备工作,打开开关和下好断点ed winlogon!WinlogonInfoLevel 0x71: kd> bl 0 e Disable Clear 0102c1b3 0001 (0001) winlogon!EnableSasMessages 1 d Enable Clear 01011cc8 0001 (0001) winlogon!LogEvent 2 e Disable Clear 01011f08
2024-09-18 17:50:00 1002
原创 windows server 2003 checked版本dbgprint输出记录开机到关机
kd> gInstalledInstalled!!!!!!!!!!!!!!!!MSXML!MSXML!MSXML!MSXML!MSXML!atom=0。
2024-09-14 11:30:30 564
原创 csrss源码分析
csrss源码分析winsrv!TerminalServerRequestThreadwinsrv!NotificationThreadCSRSRV!CsrApiRequestThreadCSRSRV!CsrSbApiRequestThreadwin32k!RawInputThreadwin32k!xxxDesktopThreadwinsrv!Win32CommandChannelThread
2024-09-13 21:10:29 343
原创 win2003_prepatched_v6b有效期到2021年4月2日,所以编译win2k3会有错误
openssl 查看证书pfx过期时间win2003_prepatched_v6b有效期到2021年4月2日,所以编译win2k3会有错误要使用OpenSSL查看PFX(也称为PKCS#12)证书的过期时间,你可以使用以下命令:openssl pkcs12 -in your_certificate.pfx -nokeys -passin pass:YourPassword | openssl x509 -noout -dates
2024-09-08 21:36:37 398
原创 编译win2k3简易教程(20240910教师节)
https://www.123pan.com/s/sJJPjv-IvuKh.htmled2k://|file|en_windows_xp_professional_with_service_pack_3_x86_cd_x14-80428.iso|617756672|2A30BB63730F7887E1AC54363A8489C2|/
2024-09-08 20:25:39 352
原创 BaseThreadStart代码分析
在线程创建的时候,系统会把CreateThread传递进来的线程运行函数和参数一次压栈,同时会把一个为称为BaseThreadStart的未文档化(和未输出)的函数的地址放入IP寄存器中,当线程初始化完成并处于可以运行状态时,BaseThreadStart函数就会被执行,当新线程执行BaseThreadStart函数时,将会出现下列情况:• 在线程函数中建立一个结构化异常处理(S E H)帧,这样,在线程执行时产生的任何异常情况都会得到系统的某种默认处理(关于结构化异常处理的详细说明参见第2 3、
2024-09-05 18:24:58 385
原创 xxxRealInternalGetMessage分析之While循环分析----干货
xxxRealInternalGetMessage分析之While循环分析----干货
2024-09-02 10:49:20 886
原创 揭秘gapfnScSendMessage数组大部分都是NtUserMessageCall
揭秘gapfnScSendMessage数组大部分都是NtUserMessageCallclient/clmsg.c里面的RealDefWindowProcWorker函数里面大量调用了CsSendMessage函数第一部分B:client/usercli.h文件里有CsSendMessage函数的宏定义#define CsSendMessage(hwnd, msg, wParam, lParam, xParam, pfn, bAnsi) \ (((msg) >= WM
2024-08-31 20:51:07 389
原创 PsConvertToGuiThread函数调用前传
第一部分:位置ch@chenghaodeiMac base % grep "Kss_ErrorHandler" -nr ././/ntos/ke/i386/trap.asm:1026:Kss_ErrorHandler:.//ntos/ke/i386/trap.asm:1220: jae Kss_ErrorHandler ; if ae, try to convert to GUI thread第二部分:指定的系统服务号不在范围内。尝试转换为
2024-08-25 15:44:31 735
原创 InputApc()函数是如何调用ProcessKeyboardInput()函数的?
InputApc()函数是如何调用ProcessKeyboardInput()函数的?
2024-08-20 19:05:05 926
原创 设备驱动里面调用了IoCallDriver()函数
设备驱动里面调用了IoCallDriver()函数文件位置:Win2K3/drivers/input/mouser/io.cSerialMouseReadComplete ()函数和SerialMouseStartRead ()函数
2024-08-17 12:05:13 839
原创 IRP的结构
因此,唯一可以使用Not I/O的驱动程序是直接从I/O管理器输入的驱动程序,上面没有中间驱动程序,并且可以在调用过程的上下文中处理(通常是完成)I/O操作。因此,对于指向两个驱动程序堆栈的I/O请求,I/O管理器将尝试使用具有三个I/O堆栈位置的IRP后备列表中的一个IRP。然而,它可以被任何类型的驱动程序使用,这些驱动程序希望在用户缓冲区和外围设备之间直接传输数据,而不需要重新拒绝数据的开销(就像缓冲区I/O的情况一样),也不必在调用过程的上下文中执行传输(就像两者都没有I/O的情况那样)。
2024-08-17 06:54:40 482
netcat.dll(UDP版) by chenghao0511
2013-05-20
netcat 1.15-3 by chenghao0511
2013-05-16
netcat 1.15-2 by chenghao0511
2013-05-14
netcat 1.142 by chenghao0511
2013-05-05
netcat 1.14 by chenghao0511
2013-05-03
samba rpm包 for centos-5.5
2013-03-25
bash 1.05 by gcc-1.40 in minix-386 第二版
2013-02-23
fdisk-by-chenghao0511 for linux-0.11
2013-02-16
readinode for linux-0.11 by chenghao0511
2013-02-15
readblock for linux-0.11 by chenghao0511
2013-02-15
isbn十位转13位.xlsx
2020-05-09
cute http file server 开发API
2018-11-01
Prime numbers and the Riemann zeta function.by Jørgen Veisdal
2018-03-27
initramfs-tools_0.103
2015-01-29
linux-0.11硬盘集成盘14年1月9日by chenghao0511
2014-01-09
调试shoelace的winiboot所需的img文件
2014-01-08
readline used in linux-0.11 made in minix
2014-01-04
linux-0.11内核文件备份
2014-01-03
TUTORIAL FOR INSTALLING MINIX-386
2013-12-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人