Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2011, 14:17   #21
Fanliss
Пользователь
 
Регистрация: 01.11.2011
Сообщений: 13
По умолчанию

Или чего-то не так или я не догоняю. Из функции
Код:
function DialogBoxParamW(hInstance: HINST; lpTemplateName: PWideChar;
  hWndParent: HWND; lpDialogFunc: TFNDlgProc; dwInitParam: LPARAM): Integer; stdcall;
беру dwInitParam (типа LPARAM), он является указателем (адресом).

Код:
xSplorer,p2: pointer;
fiest_name_pointer: PChar;


xSplorer:=pointer(dwInitParam+4);
fiest_name_pointer:=PChar(xSplorer^);
p2:=pointer(dwInitParam+28);

Label1.Caption:='Вы действительно хотите удалить " '+String(fiest_name_pointer)+'"?';
Label1.Caption:='Кол-во файлов '+inttostr(integer(p2^))
В итоге я получаю вместо имени файла пустую строку:
Вы действительно хотите удалить " "?
и количество файлов 66

Что я не так делаю?
Fanliss вне форума Ответить с цитированием
Старый 14.11.2011, 15:09   #22
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

28 это шестнадцатеричная система. Получение имени первого файла вроде как все верно, адрес массива находится (он понадобится если объектов удаления более одного) по смещению в 8 байт назад от начала строки имени файла. Ну и не забывайте, что строки в юникоде.
int xSplorer = *(int*)lParam;
int addr_first_name = *(int*) xSplorer[0x4];
int count_file = *(int)xSplorer[0x28];
int mass_name = *(int*)addr_first_name[-0x8];
int c = 1;
while (c != 0)
{
//в массиве имен сейчас указатель на первое\последующее имя
c = lstrlenW(mass_name);
mass_name = mass_name+c+2;
};
принципиально как то так.
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Старый 15.11.2011, 17:45   #23
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

Вот, испробуйте небольшой семпл. Инжектор подключает библиотеку к эксплореру из корня диска С: или же инжектте вручную. Выводит список удаляемых объектов по очереди в МсгБокс и запрещает удаление если в диалоговом окне нажата кнопка "Да". В ХР работает.
Вложения
Тип файла: rar dll splorer.rar (1.9 Кб, 39 просмотров)
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Старый 08.12.2011, 14:11   #24
Fanliss
Пользователь
 
Регистрация: 01.11.2011
Сообщений: 13
По умолчанию

Блин, задолбали своими командировками! Спокойно попрограммировать не дают!

Да, все работает. Только как это сделано?
У меня полчается отлавливать удаление и распознавать папку, файл или группу файлов, но с именем файла никак.

Последний раз редактировалось Fanliss; 08.12.2011 в 14:47.
Fanliss вне форума Ответить с цитированием
Старый 08.12.2011, 14:41   #25
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

Давайте icq, попробую объяснить, а то мы тут долго разбираться будем. Архив не битый.
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Старый 09.12.2011, 09:01   #26
Fanliss
Пользователь
 
Регистрация: 01.11.2011
Сообщений: 13
По умолчанию

аська 259721159

блин, я просто походу не знаю как вот это на паскале записать
int xSplorer = *(int*)lParam;
int addr_first_name = *(int*) xSplorer[0x4];
int count_file = *(int)xSplorer[0x28];
int mass_name = *(int*)addr_first_name[-0x8];

хотя со смещение 28h у меня все норм и количество файлов отображается нормально.
с массивом я не пробовал, в нем пока нет необходимости, а вот имя файла/папки не получается

Последний раз редактировалось Fanliss; 09.12.2011 в 10:59.
Fanliss вне форума Ответить с цитированием
Старый 09.12.2011, 22:06   #27
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

У вас кошку как звать? Или отключите антиспам.
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Старый 13.12.2011, 09:44   #28
Fanliss
Пользователь
 
Регистрация: 01.11.2011
Сообщений: 13
По умолчанию

я на работе-то отключил антиспам. Дома не догадался Я работаю с 8 до 17 по московскому.
Fanliss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отмена удаления в Windows artemavd Общие вопросы Delphi 8 30.11.2010 13:43
Защита файлов от удаления (assembler) Omega1 Помощь студентам 16 17.11.2010 16:14
Программа для удаления файлов 1malder1 Софт 10 29.05.2010 15:38
Защита файлов от удаления Viteef Свободное общение 5 15.06.2007 22:44
Защита файлов от удаления Viteef Общие вопросы Delphi 10 02.06.2007 07:40