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

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> <<Работа с заголовком exe>> 
:(
    Опции темы
kostik_16
  Дата 8.9.2003, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(cully @ 8.9.2003, 22:42)
Описание формата можно найти в инете, но довольно сложно в нем разобраться.

С начала так с начала!

Первое, где можно достать ПОЛЕЗНУЮ информацию про PE, так как вы не подумайте, что я захотел, что-бы вы за меня все сделали, я до этого искал и нашел много чего про PE, но там они думают в своих описаниях, что все все знают и из-за этого получается неразбериха!

Далее про структуру PE мне давно уже известно, у меня сейчас два полных и два неполных исходников вирусов на ASM, только первый не работает, а со вторым я никак не могу разобраться!

Вот и выплывает проблема - много теории и 0 практики, так как я в своей квалифе использую только Delphi и ASM, а описания как работать с заголовком PE и так далее даются на C++!

Вот и получается такая лажа!!!!!!!!!!!!


Отсюда сделайте выводы и посоветуйте мне, что делать дальше?
PM MAIL   Вверх
stab
Дата 8.9.2003, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



kostik_16, приведи пожалуйста структуру описывающую PE загловок на любом языке. Что тебе в ней не понятно выдели жирным. Может быть тебе не понятно как прочитать информацию из файла?

з.ы. все что необходимо для работы есть в windows.pas: _IMAGE_FILE_HEADER, _IMAGE_DOS_HEADER, _IMAGE_OPTIONAL_HEADER,... так что не надо ля-ля smile.gif


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
kostik_16
  Дата 8.9.2003, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Вот код вируса, который мне практически непонятен!:

Модератор: код удалён. Согласно правилам форума публикация таких кодов запрещена!

Вот пожалуй пока-что все! Что ты мне дальше посоветуешь?
PM MAIL   Вверх
kostik_16
  Дата 8.9.2003, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(cully @ 8.9.2003, 23:26)
P.S. все что необходимо для работы есть в windows.pas: _IMAGE_FILE_HEADER, _IMAGE_DOS_HEADER, _IMAGE_OPTIONAL_HEADER,... так что не надо ля-ля smile.gif

Что это за файл? -
Цитата

Цитата

Цитата

windows.pas



PM MAIL   Вверх
stab
Дата 9.9.2003, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



Код

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 fs: TFileStream;
 pe_offset: DWORD;
 ifh: _IMAGE_FILE_HEADER;
 ioh: _IMAGE_OPTIONAL_HEADER;
 i: Integer;
 ish: _IMAGE_SECTION_HEADER;
begin
 fs := TFileStream.Create('c:\test.exe', fmOpenRead);
 fs.Position := $3C;
 fs.Read(pe_offset, SizeOf(pe_offset));
 fs.Position := pe_offset;
 fs.Position := fs.Position + 4; // skip PE, 0, 0 signature
 fs.Read(ifh, SizeOf(ifh));
 ShowMessage('Section count: ' + IntToStr(ifh.NumberOfSections));
 fs.Read(ioh, SizeOf(ioh));
 ShowMessage('Image Base: ' + IntToHex(ioh.ImageBase, 8));
 ShowMessage('Entry point RVA: ' + IntToHex(ioh.AddressOfEntryPoint, 8));
 ShowMessage('Object Align: ' + IntToHex(ioh.SectionAlignment, 8));
 ShowMessage('File Align: ' + IntToHex(ioh.FileAlignment, 8));
 for i := 1 to ifh.NumberOfSections do
 begin
   fs.Read(ish, SizeOf(ish));
   ShowMessage('Section #' + IntToStr(i) + ' Name: ' + PChar(@ish.Name));
   ShowMessage('Section #' + IntToStr(i) + ' Virtual Size: ' + IntToHex(ish.Misc.VirtualSize, 8));
   ShowMessage('Section #' + IntToStr(i) + ' RVA: ' + IntToHex(ish.VirtualAddress, 8));
   ShowMessage('Section #' + IntToStr(i) + ' Physical Size: ' + IntToHex(ish.SizeOfRawData, 8));
   ShowMessage('Section #' + IntToStr(i) + ' File Offset: ' + IntToHex(ish.PointerToRawData, 8));
 end;
 fs.Free;
end;

end.


что здесь такого сложно? особенно при наличии документации и примеров...


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
kostik_16
  Дата 9.9.2003, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(cully @ 8.9.2003, 22:42)
4. Модифицировать данные о последней секции с учетом размера нашего кода, File Align и Object Align.
5. Поменять точку входа предварительно сохранив старую для того что бы потом сделать прыжок на начало программы.
6. Записать свой код в конец.

Если я не ошибаюсь, то именно до этих пунктов мы дошли!
Итак главной проблемой сейчас (для меня) является:
Цитата

4. Модифицировать данные о последней секции с учетом размера нашего кода, File Align и Object Align.
5. Поменять точку входа предварительно сохранив старую для того что бы потом сделать прыжок на начало программы.


Я так понял модифицировать, тоесть увеличить для того, что-бы приписать свою секцию туда, но зачем нам это? Нельзя ли начать новую секцию, в которой будет содержаться процедура?

Если да, то нам прийдется изменить в заголовке число секций, размер весго файла, точку входа. Может чет и забыл!

Если я не ошибаюсь, то теорию я понял, но как это сделать на практике - это самая главная проблема confused.gifconfused.gifconfused.gif?

Помогите, ведь осталось всего чуть-чуть! Всем заранее спасибо, а особенно cully и p0s0l!
PM MAIL   Вверх
Vit
Дата 10.9.2003, 05:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Модератор: Совершенно явственно идёт обсуждение написания вируса или вредоносной программы. Уже дошло до публикации кодов вирусов. Обсуждение таких тем и публикация таких кодов запрещена на данном форуме, а также нарушает законодательство стран имеющих отношение к данному форуму и его администрации. В связи с этим обсуждение прекращено. Тема закрыта.


У меня личная просьба к cully и p0s0l. Вы очень сильные программисты, особенно в области низкоуровневого программирования, поэтому я хочу обратить Ваше внимание на то ЧТО именно спрашивают на форуме, и каков уровень подготовки тех кто спрашивает. Я не могу прекратить обсуждение пока участник не перешагнёт некую грань, однако предлагаю впредь избегать делиться своими знаниями в таких скользких вопросах. К сожалению примерно раз в 3 месяца всплывает подобный топик, когда совсем слабенький программист пытается выпытать что-то явно относящееся к созданию вредоносного. Если это ясно на 100% я закрываю эту тему сразу, если же она замаскирована под что-то безобидное, то я предлагаю просто игнорировать такие топики.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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