|
关于注入DLL后用EnumProcessModules
既然解决了 我是来接分的。。。哈哈 |
|
|
|
怎么hWnd1为0,获取不到QQ登录窗口的句柄!
1.QQ主窗体一定是存在的 所以 我们这样枚举一下 // HWND hAll = ::GetDesktopWindow(); // HWND hCurrent = ::GetNextWindow(hAll, GW_CHILD); // char szTittleDbg[256] = {0}; // char *p = NULL; // while (hCurrent != NULL) // { // ::GetWindowText(hCurrent, szTittleDbg, 256); // int iStrLength = strlen(szTittleDbg); // if (iStrLength != 0) // { // printf(szTittleDbg); // printf("\r\n"); // } // hCurrent = ::GetNextWindow(hCurrent, GW_HWNDNEXT); // } 发现里面有一个 QQ2010 然后 HWND h = FindWindow(0, "QQ2010"); ShowWindow(h, SW_HIDE); qq主窗体就藏起来了。。。 。。。 |
|
|
|
[题目][第三阶段题目]『深圳腾讯2010安全技术竞赛』
。。。。。。 |
|
[求助]test eax,eax 后面跟 jl 指令是什么意思?
jl一般是符号小于跳转 根据 sf符号标志位 和 of溢出标志位的异或来判断跳转的 (异或值为1则跳) test指令总是清零of 和 cf进位标志位 然后根据操作数与结果来修改 sf zf pf 因此本题test之后of必定是0 所以看sf是1则跳 不是1则不跳 也就是2楼大大说的是测试符合位的 |
|
[题目][第三阶段题目]『深圳腾讯2010安全技术竞赛』
3. 测试程序调用任何函数之前可能会进行检查,检查内容可能包含但不限于检测InlineHook。 这句话太狠了。。。不敢尝试。。。 如果有写好的同学 把a.exe加个vm再试试。。。 |
|
[求助]为什么要多添0x40个int 3h,多此一举?
引用<天书夜读>里的一句话解释 把局部变量区域初始化成0cccccccch。0cccccccch 实际是INT 3.这是一个中断指令。因为局部变量不可能被执行,如果执行 了必然程序有错,这时发生中断来提示开发者。这是VC 编译DEBUG 版本的特有操作。 |
|
[求助]VC如何隐藏运行程序的界面?
在 SendMessage(hWnd,TB_HIDEBUTTON, tbButton.idCommand, MAKELONG (show, 0)); 后面加一句 SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0); |
|
[求助]VC如何隐藏运行程序的界面?
我的这个不太完美 在隐藏后右下角会有一个空白 我不知道是为什么 希望你能完善下 然后告诉我 ps。这样的问题 最好发到求助问答区。。。 #include <atlbase.h> #include <atlconv.h> #include <CommCtrl.h> void HideWindow(HWND h, BOOL bHide) { ShowWindow(h, bHide? SW_HIDE:SW_SHOW); } void HideTrayIcon(char szIcon[],BOOL show) { HWND hWnd,hWndPaper; unsigned long lngPID; long lngButtons; HANDLE hProcess; LPVOID lngAddress; long lngHwndAdr,lngHwnd; char strBuff[1024]={0}; TBBUTTON tbButton; hWnd = FindWindow("Shell_TrayWnd", NULL); hWnd = FindWindowEx(hWnd, 0, "TrayNotifyWnd", NULL); hWndPaper = FindWindowEx(hWnd, 0, "SysPager", NULL); if(!hWndPaper) hWnd = FindWindowEx(hWnd, 0, "ToolbarWindow32", NULL); else hWnd = FindWindowEx(hWndPaper, 0, "ToolbarWindow32", NULL); GetWindowThreadProcessId(hWnd, &lngPID); hProcess = OpenProcess(PROCESS_ALL_ACCESS|PROCESS_VM_OPERATION|PROCESS_VM_READ|PROCESS_VM_WRITE, 0, lngPID); lngAddress = VirtualAllocEx(hProcess, 0, 0x4096, MEM_COMMIT, PAGE_READWRITE); lngButtons = SendMessage(hWnd, TB_BUTTONCOUNT, 0, 0); for(int i=0 ;i<lngButtons;i++) { SendMessage(hWnd,TB_GETBUTTON, i, long(lngAddress)); ReadProcessMemory(hProcess, LPVOID(long(lngAddress)), &tbButton, sizeof(tbButton),0); ReadProcessMemory(hProcess, LPVOID(tbButton.iString),strBuff,1024,0); ReadProcessMemory(hProcess, LPVOID(tbButton.dwData),&lngHwndAdr,4,0); ReadProcessMemory(hProcess, LPVOID(lngHwndAdr),&lngHwnd, 4,0); USES_CONVERSION; char *str = OLE2T((LPOLESTR)(strBuff)); if(strstr(str,szIcon)) { SendMessage(hWnd,TB_HIDEBUTTON, tbButton.idCommand, MAKELONG (show, 0)); break; } } VirtualFreeEx( hProcess, lngAddress, 0X4096, MEM_RELEASE); CloseHandle(hProcess); } int main(int argc, char* argv[]) { //隐藏TM(我电脑上是tm,如果你电脑上是qq那就类似的设置一下) HideWindow(FindWindow(0, "TM2009"), TRUE); HideTrayIcon("TM", TRUE); for (int i=0; i<5; i++) { printf("%d秒之后恢复。。。\r\n", 5-i); Sleep(1000); } //恢复 HideWindow(FindWindow(0, "TM2009"), FALSE); HideTrayIcon("TM", FALSE); return 0; } |
|
大家帮忙看看这个应该挂接哪个api
这样是可以的 但是如果读文件的目标程序(别人的程序) 做了很多措施(eg 杀软) 不允许你用常规的dll注入 这样就容易造成目标程序的非常不稳定 当然 如果目标程序就那么几个(10个之内),而且都是常规程序 没做什么防护 楼主的方法还是首选 如果要做加解密程序 最好还是用驱动过滤。。。 |
|
[讨论]腾讯和可牛之间是什么关系呢
听说楼主是美女? |
|
|
|
[转帖]C语言拆行shellcode的五种方式
支持啦 。。。 |
|
讨论
我是来看楼主的结贴率的。。。 |
|
[转帖]QQ大战360,战局会如何发展?
。。。。。。 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值