Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых)

 eXeL@B —› Программирование —› Разработка паккаджа "PEformat.bpl"
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 10 декабря 2006 10:35 · Поправил: theCollision
· Личное сообщение · #1

Всем хай.

Надоело каждый раз изобретать велосипед, по нахождению одних и тех же данных,
то точку входа, то кол-во секций, то еще что нить.

Вот и задумал, написать паккадж, но возник вопрос, как у нормального ленивого человека: "А вдруг уже есть?". Полез в гугл, спросил, а он говорит, что вроде бы нету.

вот и спрашиваю, есть у кого нить уже готовое че нить?
Если нет, то может кто-то подсодиниться к проекту, чтобы я его более грамотным сделал и более нужным!

-----
My love is very cool girl.




Ранг: 73.7 (постоянный), 22thx
Активность: 0.040
Статус: Участник

Создано: 10 декабря 2006 10:42
· Личное сообщение · #2

Пока такого не видал,но некоторые выкладывали свои модули для работы с ПЕ форматом(вроде Guru_Exe и ещё кто-то).
Я целиком за создание. +1




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 10 декабря 2006 10:42 · Поправил: Hellspawn
· Личное сообщение · #3

есть pas юниты у мну где то пара валялась, там описание основных стр-р + некоторые функции...
просто передаешь путь к РЕ и он вытягивает всю инфу

-----
[nice coder and reverser]




Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 10 декабря 2006 10:46
· Личное сообщение · #4

Hellspawn
можешь поделиться? Я хочу глянуть, вдруг твое меня устроит

-----
My love is very cool girl.




Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 10 декабря 2006 10:46 · Поправил: sniperZ
· Личное сообщение · #5

//удалил



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 10 декабря 2006 10:47
· Личное сообщение · #6

sniperZ
Я не для прота! А для того что куча своит тулзов исследовательских пишется, и замучился делать одно и тоже!

-----
My love is very cool girl.




Ранг: 73.7 (постоянный), 22thx
Активность: 0.040
Статус: Участник

Создано: 10 декабря 2006 10:53
· Личное сообщение · #7

theCollision пишет:
Я не для прота! А для того что куча своит тулзов исследовательских пишется, и замучился делать одно и тоже!


Поделись своими тулзами

Относительно темы,поищи на форуме,такое уже выкладывали




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 10 декабря 2006 11:00
· Личное сообщение · #8

theCollision
Ты хочешь создать модуль для работы с PE-файлом? Обращение с секциями, импортом, и т.д.?

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



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 10 декабря 2006 11:02 · Поправил: theCollision
· Личное сообщение · #9

XQuader
Шоб ты в них што-то разобрал, тебе надо быть Эйнштейном!

Hellspawn
Спасибо, буду глядеть!

HoBleen
Именно это я и хочу!!!
При чем без мэппирования, а только с ReadFile,WriteFile.

Почему? Потому что NTFS позволяет создавать файлы в 128 Гб и ничто не мешает человеку создать такой exe-файл! Сейчас мне не надо открывать такие файлы, но могу ли я закладываться что и в будущем мне этого не потребуется?! А я ленивый и не хочу много работать над одним и тем же!

-----
My love is very cool girl.




Ранг: 73.7 (постоянный), 22thx
Активность: 0.040
Статус: Участник

Создано: 10 декабря 2006 11:06
· Личное сообщение · #10

theCollision пишет:
XQuader
Шоб ты в них што-то разобрал, тебе надо быть Эйнштейном!


Интересное мнение(хотя иногда это так)




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 10 декабря 2006 11:17
· Личное сообщение · #11

theCollision пишет:
При чем без мэппирования, а только с ReadFile,WriteFile.

Почему? Потому что NTFS позволяет создавать файлы в 128 Гб и ничто не мешает человеку создать такой exe-файл!

Хм.. думаю, что с ReadFile у тебя будет не меньше мороки, чем при mapping'e. Ведь заголовки находятся в одной (ну, нескольких) маленькой области памяти, и с этим проблем не должно возникнуть, а чтение самих секций по-любому будет связано с проблемами размера.

А реализацию, скорее всего, лучше сделать в виде класса.



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 10 декабря 2006 11:31 · Поправил: theCollision
· Личное сообщение · #12

HoBleen
Я делаю потомка

TPEFormat = class(TComponent)

Почему, потому что хочу сделать совместимость с Borland Delphi 7.0, BDS 2006(я щас работаю на Turbo Delphi).

Требования:
1. компонент, обязан использовать все структуры свои и не надеяться на windows.pas !
2. Компонент, обяза быть как design,так и RunTime !
3. Компонент должен соответствовавать прославленному инклуду winnt.h, чтобы не возникало не однозначностей и вопросов: "А на фига эта структура нужна?"
4. Подопытный файл доллжен читаться через ReadFile, а не посредством Мэппирования, кой чего из минусов мэппирования было описано в книге Русссиновича, а кой чего на васм-форуме сказал leo

-----
My love is very cool girl.




Ранг: 191.8 (ветеран), 46thx
Активность: 0.170
Статус: Участник

Создано: 10 декабря 2006 17:42
· Личное сообщение · #13

мож что пригодится
tatradas.host.sk/source/tdas296src.zip




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 10 декабря 2006 20:53
· Личное сообщение · #14

theCollision без маппирования тебе придется пол загрузчика виндовс разобрать. Hellspawn помнит фишки с WinUpack, NsPack. и не факт что кто то что то еще не найдет.

-----
Yann Tiersen best and do not fuck




Ранг: 54.9 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 10 декабря 2006 22:17
· Личное сообщение · #15

В комплекте Jcl sourceforge.net/projects/jcl/ есть модуль JclPeImage.pas в котором много чего полезного описано. А в папке с примера есть peviewer. Рекомендую глянуть.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 10 декабря 2006 22:44
· Личное сообщение · #16

Угу занятный файлик

-----
Yann Tiersen best and do not fuck




Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 10 декабря 2006 23:58
· Личное сообщение · #17

xShadow
Занятный модуль! чето я его не замечал раньше, хотя Jedi стоит!

PE_Kill
[quote]theCollision без маппирования тебе придется пол загрузчика виндовс разобрать[/qoute]
А что делать? Можно конечно чем-то готовым! Но зачем лучше написать снуля,т.к. будешь шарить где у тебя че находится! В чужом же сорце тоже не факт что все правильно!

-----
My love is very cool girl.





Ранг: 420.3 (мудрец)
Активность: 0.240
Статус: Участник

Создано: 11 декабря 2006 00:12
· Личное сообщение · #18

theCollision пишет:
В чужом же сорце тоже не факт что все правильно!

Да и пока разберешься что да как, действительно проще написать с нуля.

xShadow
Спасибо за подборочку, в хозяйстве пригодится.

-----
Сколько ни наталкивали на мысль – все равно сумел увернуться




Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 11 декабря 2006 00:29
· Личное сообщение · #19

Вобщем, я сейчас уже принял решение: По мере появления свободного времени писать этот паккадж.

для этого спрашиваю:
1. Есть ли желающие по учавствовать?
2. может быть вы уже хотели получить возможность в других подобных проектах, но их не было. какие?

-----
My love is very cool girl.





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 11 декабря 2006 00:43
· Личное сообщение · #20

При маппировании 60% глюков уходит, вот что я имел ввиду

-----
Yann Tiersen best and do not fuck





Ранг: 61.7 (постоянный)
Активность: 0.050
Статус: Участник
я

Создано: 11 декабря 2006 00:56
· Личное сообщение · #21

PE_Kill пишет:
При маппировании 60% глюков уходит, вот что я имел ввиду

ага)) если не все 90%))) да и количество кода сокращается раза в 2




Ранг: 105.9 (ветеран)
Активность: 0.060
Статус: Участник

Создано: 11 декабря 2006 01:45
· Личное сообщение · #22

theCollision
Идея хорошая, есть предложение сделать проект открытым. Так как, даже простенькую Rva2Offset правильно реализовать не каждый сможет.

theCollision пишет:
"А вдруг уже есть?". Полез в гугл, спросил, а он говорит, что вроде бы нету.

Есть в виде DLL. Все написаны на MASM.

Pe Library by Pumqara (open source)
pe-lib.sourceforge.net/
sourceforge.net/projects/pe-lib

PEStuff Library by Sunshine2k
www.sunshine2k.de/

PE Samourai by the Dr. rED mEAT (open source)
web.archive.org/web/20031231181510/http://www.rif.fr.fm/



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 11 декабря 2006 02:26
· Личное сообщение · #23

seeq
спасибо за участие!

-----
My love is very cool girl.





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 11 декабря 2006 07:17
· Личное сообщение · #24

seeq пишет:
Так как, даже простенькую Rva2Offset правильно реализовать не каждый сможет.


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

theCollision записывай) помогу, опыт большой, да и есть файлы на которых
надо тестить

-----
[nice coder and reverser]




Ранг: 34.9 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 14 января 2007 12:28
· Личное сообщение · #25

PE_Files.pas by Dr. Golova
TPEFile

a381_14.01.2007_CRACKLAB.rU.tgz - PE_Files.zip



Ранг: 163.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 15 января 2007 21:17 · Поправил: S_T_A_S_
· Личное сообщение · #26

theCollision пишет:
Компонент должен соответствовавать прославленному инклуду winnt.h

У стандартных хидеров есть одна довольно серьёзная (IMHO) проблема. Размер структуры IMAGE_OPTIONAL_HEADER может быть как 224, так и 240 байт (PE32+). Определить это можно только в рантайме (по сигнатуре). Однако ребята из MS захардкодили это дело макросами, и структура выбирается в зависимости от разрядности проекта.

theCollision пишет:
Подопытный файл доллжен читаться через ReadFile, а не посредством Мэппирования

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

theCollision пишет:
NTFS позволяет создавать файлы в 128 Гб и ничто не мешает человеку создать такой exe-файл!

Обрати внимание на поле SizeOfImage.



Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 16 января 2007 02:42
· Личное сообщение · #27

> Обрати внимание на поле SizeOfImage
Ага, получается максимум около 4 гигов файл можно сделать.. Ну ещё оверлей правда, но это в PE формату косвенно относится ;)

-----
Shalom ebanats!





Ранг: 327.3 (мудрец)
Активность: 0.250
Статус: Участник

Создано: 16 января 2007 10:49
· Личное сообщение · #28

может подойдет ?

TPEEditor v.1.0
www.torry.net/vcl/vcltools/proj/peeditor.zip

-----
in search of sunrise




Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 16 января 2007 23:03
· Личное сообщение · #29

Сейчас, я думаю над интерфейсом компонента, сделал 2 пробника и оба забраковал. Уж очень не удобно с ними работать.

что мне не нравится, надоели строки вида:
Component1.Structure1.SubStructure1.Field1[Index1].Value1 := tmp1;

красиво? Мне вот не нравится! Кто-то скажет, что можно и :
with Component1.Structure1 do
SubStructure1.Fiedl1[Index1].Value1 := tmp1;

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

-----
My love is very cool girl.





Ранг: 209.1 (наставник)
Активность: 0.130
Статус: Участник
программист априори

Создано: 16 января 2007 23:53
· Личное сообщение · #30

theCollision

ты не прав, важен не код, у тебя он вполне понятен даже при
Component1.Structure1.SubStructure1.Field1[Index1].Value1 := tmp1;
это не главное как написано, главное комментарии, есть будут хорошие комментарии к коду, то он всегда будет понятен. а проект интересный, но я бы подумал перенести его лучше в C#-версию, это более актуально, хотя Дельфи конечно тоже будет жить, просто в шарпе уже многое реализовано, нафига изобретать велосипед


. 1 . 2 . >>
 eXeL@B —› Программирование —› Разработка паккаджа "PEformat.bpl"
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати