Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> dll в виде массива 
V
    Опции темы
MaGICaN
Дата 8.8.2007, 14:01 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 20.7.2007

Репутация: нет
Всего: нет



Как реализовать представления dll в виде массива.

Помогите плз сроки поджимают. 
PM MAIL   Вверх
Snowy
Дата 8.8.2007, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Это как это??
Что имеется ввиду?
 smile 
PM MAIL   Вверх
bems
Дата 8.8.2007, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



попробую потелепатить...

не подойдет ли тебе привести hInstance библиотеки к указателю и читать по нужному смещению от него?


--------------------
Обижено школьников: 8
PM MAIL   Вверх
MaGICaN
Дата 8.8.2007, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 20.7.2007

Репутация: нет
Всего: нет



вот часть кода 
Код

program bks32_inst;

uses
 Windows;

const
 // динамическая библиотека в виде массива кодов символов
 LCharAr: Array [1..15360] of Word =
 ( массив);

var
 WinDir: array [0..50] of Char;
 F: TextFile;
 i: integer;
 Reg: HKEY;
begin
 GetSystemDirectory(@WinDir, 50);

 // создаем библиотеку и присваиваем ей системные атрибуты
 AssignFile(F, WinDir+'\bks32.dll');
 ReWrite(F);
 for i:=1 to 14848 do Write(F, Chr(LCharAr[i]));
 CloseFile(F);
 SetFileAttributes(PChar(WinDir+'\bks32.dll'), FILE_ATTRIBUTE_SYSTEM);

PM MAIL   Вверх
MetalFan
Дата 8.8.2007, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



MaGICaN, и в чем проблема? что не работает?


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Snowy
Дата 8.8.2007, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Наверное, он хочет узнать, как её в текст программы закатать...
Так вот не надо этого делать ;-)
Засунь в ресурсы и оттуда и доставай.
PM MAIL   Вверх
Yanis
Дата 8.8.2007, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Очередной хакер.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Sunvas
Дата 8.8.2007, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Конечно метод создания библиотеки автор выбрал сильнейший.. Правильно было сказано выше - нужно использовать ресурсы для таких извращений. Но все же, чем не устраивает просто таскать за собой файл библиотеки?


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
MaGICaN
Дата 8.8.2007, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 20.7.2007

Репутация: нет
Всего: нет



просто хочу чтобы dll закаталась в файл и при запуске инсталилась.
подскажите как это реализовать.

>Очередной хакер. 
нет не хакер я хочу чтобы при запуске длл инсталилась а при завершении удалялась.


PM MAIL   Вверх
Sunvas
Дата 8.8.2007, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Цитата(MaGICaN @  8.8.2007,  23:18 Найти цитируемый пост)
подскажите как это реализовать.

Поиск по форуму по ключевому слову "ресурсы" тебе поможет.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
BaD_SeCt0R
Дата 8.8.2007, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lazy Coder
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 9.10.2006
Где: Анапа

Репутация: 4
Всего: 18



MaGICaN, как насчет того, чтобы библиотеку в ресурсы засунуть?


--------------------
Кто владеет информацией - владеет миром. (С) Френсис Бэкон.
PM MAIL ICQ   Вверх
Демо
Дата 9.8.2007, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Цитата(MaGICaN @  8.8.2007,  23:18 Найти цитируемый пост)
просто хочу чтобы dll закаталась в файл и при запуске инсталилась.


Ну вроде бы нет проблем.

1. Готовую библиотеку дописываешь к своему исполняемому модулю. При старте программы читаешь .exe и копируешь библиотеку на диск - в Temporary каталог, после окончания работы с с программой удаляешь.
2. Как было написано выше, записываешь файл библиотеки в ресурсы и работаешь  с ним так же, как в первом варианте.

Второй вариант, без сомнения, предпочтительнее, учитывая повсеместное использование всяческих антивирусов.


--------------------
    
PM MAIL ICQ Skype   Вверх
Yanis
Дата 9.8.2007, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(MaGICaN @  9.8.2007,  00:18 Найти цитируемый пост)
чтобы при запуске длл инсталилась

Вредоносная dll.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
BaD_SeCt0R
Дата 9.8.2007, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lazy Coder
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 9.10.2006
Где: Анапа

Репутация: 4
Всего: 18



Цитата(Yanis @  9.8.2007,  11:22 Найти цитируемый пост)
Вредоносная dll


Есть подозрение на клавшпиона  smile 


--------------------
Кто владеет информацией - владеет миром. (С) Френсис Бэкон.
PM MAIL ICQ   Вверх
djman2006
Дата 9.8.2007, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 10.6.2007

Репутация: нет
Всего: 1



1. Создаешь файл Resorce.rc открываеш блокнотом и пишешь "f8 crazyDLL my.dll"
2. Подключаешь 
Код

{$R 'Resorce.res' 'Resorce.rc'}

3. Процедура извлечения
Код

procedure ExtractResourceToFile1( ResName, ResExtract: String);
var
  ResourceLocation: HRSRC;
  cFileHandle, cResourceDataHandle: THandle;
  cResourceSize, cBytesWritten: Longword;
  cRecourcePath, cResourcePointer: PChar;
begin
  cRecourcePath := PChar( ResExtract );
  ResourceLocation := FindResource(HInstance,PChar(ResName),'crazyDLL');  //<----there!
  cResourceSize := SizeofResource(HInstance,ResourceLocation);
  cResourceDataHandle := LoadResource(HInstance,ResourceLocation);
  cResourcePointer := LockResource(cResourceDataHandle);
  cFileHandle := CreateFile(cRecourcePath,GENERIC_WRITE,FILE_SHARE_WRITE,nil,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
  WriteFile( cFileHandle, cResourcePointer^, cResourceSize,cBytesWritten,nil);
  CloseHandle( cFileHandle );
end;

Пример 
Код

ExtractResourceToFile1('f8','C:\my.dll');

Таким образом можно прилепить что-угодно  smile 

Способ 2 (более извращенный)
1. открываем ДЛЛ винхексом выделяем все Edit->Copy->as Pascal source
2. Вставляем ето в прогу 
Код

data: array[0..69119] of byte = (
    $4D, $5A, $90, $00, $03, $00, $00, $00, $04, $00, $00, $00, $FF, $FF, $00, $00, 
    $B8, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $00, $00, $00, $00, $00, 
     .. .............. ........................... ............................................................................................
    $49, $4E, $47, $58, $58, $50, $41, $44, $44, $49, $4E, $47, $50, $41, $44, $44, 
    $49, $4E, $47, $58, $58, $50, $41, $44, $44, $49, $4E, $47, $50, $41, $44, $44
);

3. Пишем ето в нетипизированный файл средствами BlockWrite,AssignFile,Rewrite

PS Почему вы говорите "хакер" идт... Я например использовал такие методы для  сокрытия своево процеса от диспетчера задач (пакованный ДЛЛ лепил в ресурсы и извлекал и внедрял). Проект был совсем не "хакерский" - Клубный Шелл (для Компютерных клубов, замена оболочке винды).
PPS Надеюсь чем-то помог
PPPS За плохой русский не пинать

Это сообщение отредактировал(а) djman2006 - 9.8.2007, 22:13
PM MAIL   Вверх
MaGICaN
Дата 10.8.2007, 01:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 20.7.2007

Репутация: нет
Всего: нет



ну я бы несказал что клав шпион, яскажу просто кейлогер, создаю его для того чтобы за девушкой проследить неболее, такчто ненадо считать меня злым гением или доктором зло, я простой романтик который совсем неверит девушкам.


я нашел ответ на свой вопрос

для создать файл ресурсов так.


Код

procedure CreateResourceFile(
  DataFile, ResFile: string; // имена файлов
  ResID: Integer // id ресурсов
  );
var
  FS, RS: TFileStream;
  FileHeader, ResHeader: TResHeader;
  Padding: array [0..SizeOf(DWORD)-1] of Byte;
begin

  { Open input file and create resource file }
  FS := TFileStream.Create( 
  DataFile, fmOpenRead);
  RS := TFileStream.Create( 
  ResFile, fmCreate);
  HeaderSize, ResType и ResID }
  FillChar(FileHeader, SizeOf(FileHeader), #0);
  FileHeader.HeaderSize := SizeOf(FileHeader);
  FileHeader.ResId := $0000FFFF;
  FileHeader.ResType := $0000FFFF;
  FillChar(ResHeader, SizeOf(ResHeader), #0);
  ResHeader.HeaderSize := SizeOf(ResHeader);
  ResHeader.ResId := $0000FFFF or (ResId shl 16);
  ResHeader.ResType := $0000FFFF
  or (WORD(RT_RCDATA) shl 16);
  ResHeader.DataSize := FS.Size;
  // Устанавливаем необходимые флаги памяти
  ResHeader.MemoryFlags := $0030;
  RS.WriteBuffer(FileHeader, sizeof(FileHeader));
  RS.WriteBuffer(ResHeader, sizeof(ResHeader));
  RS.CopyFrom(FS, FS.Size);

  { Pad data out to DWORD boundary - any old
  rubbish will do!}
  if FS.Size mod SizeOf(DWORD) <> 0 then
    RS.WriteBuffer(Padding, SizeOf(DWORD) -
    FS.Size mod SizeOf(DWORD));
  FS.Free; 
  RS.Free;
end;


потом дерагать из проги вот так 

Код

procedure ExtractToFile(Instance:THandle; ResID:Integer; ResType, 
FileName:string);
var
  ResStream: TResourceStream;
  FileStream: TFileStream;
begin
  try
    ResStream := TResourceStream.CreateFromID(Instance, ResID, 
    pChar(ResType));
    try
      //if FileExists(FileName) then
      //DeleteFile(pChar(FileName));
      FileStream := TFileStream.Create(FileName, fmCreate);
      try
        FileStream.CopyFrom(ResStream, 0);
      finally
        FileStream.Free;
      end;
    finally
      ResStream.Free;
    end;
  except
    on E:Exception do
    begin
      DeleteFile(FileName);
      raise;
    end;
  end;
end;




всем спасибо за помощь
2 Yanis огромное спасибо за сарказм =)

Это сообщение отредактировал(а) MaGICaN - 10.8.2007, 05:28
PM MAIL   Вверх
W4FhLF
Дата 10.8.2007, 06:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 6
Всего: 121



Цитата(MaGICaN @  10.8.2007,  01:20 Найти цитируемый пост)
такчто ненадо считать меня злым гением или доктором зло


Да ладно, ты себе льстишь smile


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
MaGICaN
  Дата 11.8.2007, 02:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 20.7.2007

Репутация: нет
Всего: нет



я только учусь =)
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1055 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.