информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеСтрашный баг в WindowsАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
да я прямо сюда. мот кому еще интересно будет. 10.01.03 08:57  Число просмотров: 1143
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
HWND wnd=FindWindow("Shell_TrayWnd",0);
wnd=FindWindowEx(wnd,0,"TrayNotifyWnd",0);
wnd=FindWindowEx(wnd,0,"ToolbarWindow32",0);
DWORD pid;
GetWindowThreadProcessId(wnd,&pid);
HANDLE prc=OpenProcess(PROCESS_ALL_ACCESS,0,pid);
TBBUTTON *buf=(TBBUTTON *)VirtualAllocEx(prc,0,sizeof(TBBUTTON),MEM_COMMIT,PAGE_READWRITE);
if(!buf)return;

for(int n=0;n<128;n++)
{
if(SendMessage(wnd,TB_GETBUTTON,n,(DWORD)buf))
{
char ltxt[1024];ZeroMemory(ltxt,1024);
TBBUTTON btn;
ReadProcessMemory(prc,buf,&btn,sizeof(btn),0);
char *txt=(char *)VirtualAllocEx(prc,0,1024,MEM_COMMIT,PAGE_READWRITE);
if(SendMessage(wnd,TB_GETBUTTONTEXT,btn.idCommand,(DWORD)txt)!=-1)
{
ReadProcessMemory(prc,txt,ltxt,1024,0);
MessageBox(0,ltxt,"xxx",0);
}
VirtualFreeEx(prc,txt,0,MEM_RELEASE);
}
}
VirtualFreeEx(prc,buf,0,MEM_RELEASE);
CloseHandle(prc);
<programming>
[win32] как можно узнать hicon и hwnd владельцев всех иконок в systemtray? вообще возможно ли это? 03.01.03 12:58  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
[win32] как можно узнать hicon и hwnd владельцев всех иконок в systemtray? вообще возможно ли это? 08.01.03 21:41  
Автор: YoSilver Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Иконки добавляются шеллом посылкой сообщения WM_COPYDATA окну трея, можно похватать их, посмотреть че за данные, их формат, это гимор, но по-другому имхо никак
ещё как можно 09.01.03 02:45  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
я видел несколько прог для этих целей
но помоему только одна может запускаться без перезагрузки компа и получать весь список иконок (traywizard.com)
т.е. она может запускаться когда в трее уже есть иконки и определять их
только она в XP глючит
как я понял она глючит с прогами которые используют новую версию Shell_NotifyIcon (ver.5)

p.s.
чем ещё она хороша - нет проблем с кейгенами ;)

traywizard.com
tray область - это ToolbarWindow32 по идее ей можно слать тулбаровые мессаги. (грабли внутри) 09.01.03 03:13  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
А грабли в том что при посылке окну трея TB_GETBUTTON падает explorer.exe А вот TB_DELETEBUTTON не рушит explorer а как и положено убивает иконку из трея. Но мне то нужно их перечислять (и переключать потом по горячей клавише типа Alt+Tab).
Заюзал VirtualAllocEx и ReadProcessMemory - все стало ок. Только это получается не будет под 98й работать? 09.01.03 04:01  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
Заюзал VirtualAllocEx и ReadProcessMemory - все стало ок. Только это получается не будет под 98й работать? 10.01.03 06:43  
Автор: beetle <beetle> Статус: Member
<"чистая" ссылка>
кинь код пожалуйста мне на ящик - достаточно интересно
заранее благодарен. Дякую, аж підскакую =))
да я прямо сюда. мот кому еще интересно будет. 10.01.03 08:57  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
HWND wnd=FindWindow("Shell_TrayWnd",0);
wnd=FindWindowEx(wnd,0,"TrayNotifyWnd",0);
wnd=FindWindowEx(wnd,0,"ToolbarWindow32",0);
DWORD pid;
GetWindowThreadProcessId(wnd,&pid);
HANDLE prc=OpenProcess(PROCESS_ALL_ACCESS,0,pid);
TBBUTTON *buf=(TBBUTTON *)VirtualAllocEx(prc,0,sizeof(TBBUTTON),MEM_COMMIT,PAGE_READWRITE);
if(!buf)return;

for(int n=0;n<128;n++)
{
if(SendMessage(wnd,TB_GETBUTTON,n,(DWORD)buf))
{
char ltxt[1024];ZeroMemory(ltxt,1024);
TBBUTTON btn;
ReadProcessMemory(prc,buf,&btn,sizeof(btn),0);
char *txt=(char *)VirtualAllocEx(prc,0,1024,MEM_COMMIT,PAGE_READWRITE);
if(SendMessage(wnd,TB_GETBUTTONTEXT,btn.idCommand,(DWORD)txt)!=-1)
{
ReadProcessMemory(prc,txt,ltxt,1024,0);
MessageBox(0,ltxt,"xxx",0);
}
VirtualFreeEx(prc,txt,0,MEM_RELEASE);
}
}
VirtualFreeEx(prc,buf,0,MEM_RELEASE);
CloseHandle(prc);
[Win32] у тебя explorer падал, потому что ты ему давал адрес буфера в своем адресном простаранстве 10.01.03 20:13  
Автор: beetle <beetle> Статус: Member
<"чистая" ссылка>
Ну дык. Я до этого допер сразу как сюда пожаловался... 11.01.03 00:15  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
VirtualAllocEx и ReadProcessMemory под Win9x — поищи в Сети, есть HackАналоги этих функций под эти оси 09.01.03 10:28  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 09.01.03 19:59  Количество правок: 1
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach