|
《Windows编程循序渐进》已经上市,敬请关注(附样章)
very good, very powerful |
|
[原创]《寒江独钓:Windows内核安全编程》已发售
我觉得楼主不妨考虑再版的时候将书分上下2册。 上册完全面向从来都没有编写过驱动的读者, 对于驱动的编译,环境的配置等一系列问题做比较详细的描述,并配上插图。不难看出, 楼主是个绝顶高手, 有着多年的驱动开发经验, 肯定有自己的一套开发工具和习惯, 楼主就不妨以自己的开发习惯和环境,比如用到的开发工具、驱动开发包的版本等作为主题进行详细论述,写一本驱动入门的书籍,让那些不会写驱动的人能顺利的走入驱动开发这个神秘的大门。 同时再出个下册, 重点讲解高精尖的技术,专门供那些有驱动开发经验的人研读。 这样不同的读者可以根据自己的需要选择上册或者下册, 如此这般, 就不至于让那些不会驱动开发的人觉得太难, 也不会让那些高级读者觉得是“骗钱”、“充数”。 |
|
[原创]《寒江独钓:Windows内核安全编程》已发售
楼主给的样章我试了一下, 有以下问题: 1.SOURCES文件没有指定DRIVERPATH, 编译通不过 我加了一个TARGETPATH才通过: TARGETNAME=first TARGETTYPE=DRIVER TARGETPATH=. SOURCES=first.c 2. 很多书写少了下划线, 不知道纸质的书会不会有这样的错误(我刚订了一本), 如果书的印刷错误太多 会给读者的印象大打折扣 3. 给楼主一个建议, 应该站在一个初学者的立场上, 从来没有接触过驱动的立场上, 把用vmware和windbg 如何调试驱动, 详详细细从前到后,每个步骤都写一下, 最好都配上插图, 不要因为有的地方简单就只有一些 文字描述,虽然有的东西非常简单, 但是一不小心, 或者是开发环境不同,或者是开发工具的版本不同, 就造成 了在某些地方卡住了, 这些最基本的东西如果没有完全搞会的话, 后面就根本没法做。 我觉得入门是最困难的, 这中间有很多关卡要过, 只要入了门, 后面就好搞了 以上是我个人的小小想法, 仅供参考。 |
|
[活动结束]庆新书发行,特别举办《加密与解密(第三版)》看雪论坛读书月有奖活动[7.5~8.5]
哈哈, 终于把书送到了 看了前几页才发现, 本书没光盘, 需要再看雪下载 今年半年就好好研究这本书了, 希望能有好的收获 |
|
|
|
[求助]关于windows api函数地址的问题
我打开了2个od, 载入了kernel32.dll, 它们2个中的所有函数的地址都是一样的 我有测试了user32.dll, gdi32.dll中的函数, 比对了一下,它们的地址也是一样 可是我在罗云彬的汇编中却看到他用一些函数比如TranslateMessage的时候, 却用GetProcAddress获取地址, 而且做了重定位, 这是为什么? |
|
[活动结束]庆新书发行,特别举办《加密与解密(第三版)》看雪论坛读书月有奖活动[7.5~8.5]
今天下定决心在当当买了一本, 以前是几乎不买书的, 一是计算机书, 无论牛X的, 还是垃圾的, 都很贵,所以只在网上下载电子书看, 最近逛这个论坛比较多, 感觉牛人真是多呀, 相信看雪的书也是相当牛的,书到了, 决心好好研究一番, 来缩小一下与各位大侠的距离 |
|
[下载][天草VS黑鹰]
good, powerful |
|
[原创]《Windows高级调试》[本书己到货]
very good |
|
[原创]纯C实现多页面山寨浏览器(KsBinExplorer)
支持一下, 不错 |
|
|
|
[求助]请问如何调试用于web上的一个dll
这个dll需要注册到服务器上 Regsvr32 xxx.dll ---------------------------------------------- 你这个是dll是一个activex控件 如果你这个dll是在网页上, 运行在客户端, 那么我个人觉得应该调试ie 如果是用于后台,运行在服务器端, 那么应该调试iis服务器 也就是说, 要搞清楚, 到底是哪个程序加载了这个dll 哪个进程加载了dll就调试哪个进程 |
|
[讨论]c语言如何实现或者模拟面向对象编程
这是我写的一个简单的模拟 /***********************************************\ * cclass.c c语言模拟的继承和多态 \***********************************************/ #include <stdio.h> #include <windows.h> #pragma warning(disable:4113) #pragma warning(disable:4133) #define class struct #define virtual #define MAX_FUNC 8 typedef void (*PFUNC)(void); typedef void (*vtable[MAX_FUNC])(); // 基类 class CBase { class CBase* this; // 指向自己的指针 vtable vptr; // 虚拟函数表 virtual void (*SetValue)(int value); // 虚拟函数 virtual void (*ShowValue)(); // 虚拟函数 int m_data; // 成员变量 }; class CDerived { class CBase* pBase; // 继承父类 vtable vptr; // 虚拟函数表 virtual void (*SetValue)(int value); // 虚拟函数 virtual void (*ShowValue)(); // 虚拟函数 virtual void (*SetMsg)(char* pMsg); // 虚拟函数 virtual void (*ShowMsg)(); // 虚拟函数 char m_msg[256]; // 子类的成员变量 }; void ShowValue(class CBase* pBase) { printf("%d\n", pBase->m_data); } void SetValue(int value, class CBase* pBase) { pBase->m_data = value; } void SetMsg(char* pMsg, class CDerived* pDerived) { wsprintf(pDerived->m_msg, "%s", pMsg); } void ShowMsg(class CDerived* pDerived) { printf("%s\n", pDerived->m_msg); } // 基类构造函数 void CBase(class CBase* pBase) { pBase->this = pBase; pBase->SetValue = SetValue; pBase->ShowValue = ShowValue; pBase->vptr[0] = pBase->SetValue; pBase->vptr[1] = pBase->ShowValue; } // 子类构造函数 void CDerived(class CDerived* pDerived) { class CBase* pBase = (class CDerived*)pDerived; pDerived->pBase = (class CBase*)pDerived; CBase((class CBase*)pBase); pDerived->SetMsg = SetMsg; pDerived->vptr[2] = pDerived->SetMsg; pDerived->ShowMsg = ShowMsg; pDerived->vptr[3] = pDerived->ShowMsg; } int main(int argc, char* argv[]) { class CBase b1, b2; class CDerived d1, d2; CBase(&b1); // 基类对象1构造 CBase(&b2); // 基类对象2构造 CDerived(&d1); // 子类对象1构造 CDerived(&d2); // 子类对象2构造 b1.SetValue(3); b1.ShowValue(); b2.SetValue(4); b2.ShowValue(); // b1, b2 都调用ShowValue, 但结果不一样,呈现多态 d1.SetValue(7); d1.ShowValue(); d2.SetValue(8); d2.ShowValue(); // d1, d2 继承父类的SetValue, ShowValue, 结果也不一样, 呈现多态 d1.SetMsg("This is d1."); d1.ShowMsg(); d2.SetMsg("This is d2"); d2.ShowMsg(); // SetMsg, ShowMsg是子类的虚函数,父类无法使用 CBase(&d1); // 用基类来构造子类对象 d1.SetValue(10); d1.ShowValue(); return 0; } 程序运行结果: 3 4 7 8 This is d1. This is d2 10 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值