20楼#
发布于:2011-01-16 10:50
申请 游戏外挂及反外挂 版主,
搞WIN内核的,搞过NDIS中间层驱动,键盘过滤驱动,熟悉win内核结构,及加壳脱壳技术,一定的逆向能力。 |
|
21楼#
发布于:2011-01-16 19:43
Ok 好的
|
|
|
22楼#
发布于:2011-01-16 19:45
有时间常来
|
|
|
23楼#
发布于:2011-01-17 15:47
用户被禁言,该主题自动屏蔽! |
|
24楼#
发布于:2011-01-18 10:17
OK 已经加你了
|
|
|
25楼#
发布于:2011-02-08 09:38
不知道我想申请的2个板块是否已经被申请了, 我都说上吧,{ABC初学者}或者{C/C++入门}, 自身技术没有达到深入浅出, 自学2年多点了,在线时间长, 希望有和各位前辈们共同讨论技术的机会
|
|
|
26楼#
发布于:2011-02-10 09:13
OK,
|
|
|
禁止发言
|
27楼#
发布于:2011-02-22 11:02
用户被禁言,该主题自动屏蔽! |
28楼#
发布于:2011-02-23 15:44
你好,我想申请文件过滤驱动板块的,每天有大量的时间可以在线,现在正在做文件过滤驱动的透明加密,刚起步,希望可以互相学习共同进步,是新手,有热情积极学习,也愿意积极帮助刚入门的同学,不知道能否申请
|
|
29楼#
发布于:2011-03-19 18:20
用户被禁言,该主题自动屏蔽! |
|
30楼#
发布于:2011-03-28 09:07
写上 理由
|
|
|
31楼#
发布于:2011-03-31 17:02
用户被禁言,该主题自动屏蔽! |
|
32楼#
发布于:2011-06-17 12:21
OK,楼上两位都已经批准了
|
|
|
33楼#
发布于:2011-06-18 15:39
努力学习中,希望我也能成为“高手”,成为“班主”
|
|
34楼#
发布于:2011-06-30 01:02
引用楼主znsoft于2010-12-19 04:16发表的 **********驱网招新版主了,你也可以成为大牛********** : 现在还在招版主吗,本人19岁,学习了C、C++,能看懂点汇编。 虽然我还是技术上的小菜,但我相信许多大牛没有精力来管理,而正是我们新手表现的时机,大牛们有自己的工作和家事。而我们现在正是为了学习,论坛给了我们学习的机会,也增加了自己的管理能力。希望给我个机会,我将和兄弟们一起管理好。大家一起进步。 |
|
|
35楼#
发布于:2011-07-06 12:14
擅长什么 希望那一块版主
|
|
|
36楼#
发布于:2011-07-08 21:13
申请:硬件基础 斑竹
熟悉ASIC芯片)/前端/FPGA流程,了解ASIC后端流程 熟悉Verilog电路描述语言,了解SVA 熟悉ASIC/FPGA开发的主流EDA工具, 如synopsys的VCS, DC, PT, DFTC, mentor的0in, cadence的LEC等等(包括对应的流程) 熟悉fail ic的分析 参加过3颗百万级芯片的开发,并量产 目前想往上层学习下,firmware/driver |
|
37楼#
发布于:2011-09-08 12:22
OK 啦
|
|
|
38楼#
发布于:2011-10-28 01:49
申请版主。
对于驱动一直很好奇,所以学了接近半年的这个东西,突然发现这个网站,很不错,潜力巨大,本人对JAVA,C#,DELPHI,C/C++和网站开发技术ASP.NET都有一定的基础和掌握。希望能和各位一起研究系统底层的东西。 |
|
39楼#
发布于:2011-11-07 19:39
申请:内核编程 版主 自我介绍: 我目前还是学生,除了学校上的课程,还自学Win底层知识 技术方向:学过C/C++,java,C#,ASM,HTML+CSS,javascript。了解一些驱动编程,目前主攻Win内核。 看过Win和ASM方面书籍有:Windows程序设计,王爽的汇编语言,INTEL汇编语言程序设计第5版。正在看windows核心编程。 分析了一段别人的hook API函数的代码,写了详细注释: // 定义数据段,此数据段可共享,共享属性在Def文件中定义 #pragma data_seg("myShareData") HHOOK g_hKeyboard = NULL; HWND g_hMainhWnd = NULL; char g_IMEString[256] = ""; // 输入法字符串。这里明确指定数据类型是char是为了方便设置下 面的myImmGetCompositionString函数的A和W版本 BOOL g_bHookFlag = FALSE; // 标志是否被hook了 #pragma data_seg() #pragma comment(linker, "/section:myShareData,RWS") /* * 对hook的操作 */ class HookOperations { private: BYTE m_bytOldCode[5]; // 保存被Hook的机器码 BYTE m_bytNewCode[5]; // 保存将要替换的机器码 int m_iFunAddr; // 保存指定DLL中的指定函数的地址 BOOL setCodeBeOK; // 保存是否被成功hook public: // 设置hook Api的跳转代码 BOOL SetHookApiJmpCode(TCHAR* szDllName, TCHAR* szFunName, int iFunAddr) { setCodeBeOK = FALSE; // 这个值保存设置代码是否成功 int iJmpAddr = 0; // 将要跳转到的地址 HMODULE hModule = GetModuleHandle(szDllName); // 获得DLL模块句柄 if (NULL == hModule) // 如果获得失败 return FALSE; char buf[256]; wcstombs(buf, szFunName, sizeof(buf)); m_iFunAddr = (int)GetProcAddress(hModule, buf); // 获得指定模块中的函数地址 if (NULL == m_iFunAddr) // 如果获得失败 return FALSE; // 保存旧的机器码的前5个字节,以供以后恢复使用 CopyMemory(m_bytOldCode, (const void *)m_iFunAddr, 5); m_bytNewCode[0] =0xE9; // 0xE9是汇编代码中的jmp // 计算出将要跳转到的地址。 // 这里减5,是因为这5个字节要写入跳转汇编指令jmp XXX。因为跳转指令的实质是移动一个偏移地址。即,jmp后一条指令和跳转目的地地址之间的差值。 // m_iFunAddr保存的是系统API函数的地址。iFunAddr保存的是我自己写的函数的地址。5代表了我的jmp XXX指令要占5个字节,这是我人为分配的。 // iFunAddr减去jmp指令所在地址m_iFunAddr,再减去其占用的5个字节,就是jmp指令的下一条指令的地址 iJmpAddr = iFunAddr - m_iFunAddr-5; // 组成新的机器码:jmp &iJmpAddr(这是伪码),这条汇编占用了5个字节 // 为什么要占5个字节哪?因为,jmp的机器码是E9(我调试用汇编写出的程序和控制台程序,jmp的机器码有FF25、EB,所以要看具体情况,这应该和长跳和短跳有关,有兴趣的可以具体试 验下) // jmp 后面跟了一个32位的地址偏移!一个字节的jmp机器码,4个字节的地址,加起来就要占用5个字节! CopyMemory(&m_bytNewCode[1], &iJmpAddr, 4); setCodeBeOK = TRUE; // 设置代码成功 HookApi(TRUE); return TRUE; } /******************************************** * 安装/卸载 Api hook * * TRUE=安装, FALSE=卸载 * * 必须先调用SetHookApiJmpCode设置跳转代码!!! * *******************************************/ BOOL HookApi(BOOL bIsHook) { DWORD oldACC,newACC; // 保存新旧保护值 if (!setCodeBeOK) // 如果设置代码没有成功 return FALSE; if (bIsHook) // 如果启用 { // 参数1:指向要变更保护属性的内存基址。这里是一个系统API代码的开始 地址。 // 参数2:VirtualProtect函数只做用于前五个字节 // 参数3:代码页PAGE_WRITECOPY(我的理解是可写) // 参数4:保存旧的保护值 VirtualProtect((LPVOID)m_iFunAddr, 5, PAGE_WRITECOPY, &oldACC); // 向指定地址写入新的机器码。 // 这里是把一个系统API的前5个字节替换成了jmp XXX,让程序执行到此处时,跳转到我们自己的代码区域 // 这就等于hook了这个系统API函数 CopyMemory((void *)m_iFunAddr, m_bytNewCode, 5); // 恢复原始的保护值 VirtualProtect((LPVOID)m_iFunAddr, 5, oldACC, &newACC); } else // 如果禁用 { // 恢复被hook掉的5个字节的代码,那些代码保存在m_bytOldCode // 1.先设置可写。2.然后写入旧代码。3.恢复保护值 VirtualProtect((LPVOID)m_iFunAddr, 5, PAGE_WRITECOPY, &oldACC); CopyMemory((void *)m_iFunAddr, m_bytOldCode, 5); VirtualProtect((LPVOID)m_iFunAddr, 5, oldACC, &newACC); } return TRUE; } }; |
|