Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых) |
![]() |
eXeL@B —› Программирование —› Разработка паккаджа "PEformat.bpl" |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 10 декабря 2006 10:35 · Поправил: theCollision · Личное сообщение · #1 Всем хай. Надоело каждый раз изобретать велосипед, по нахождению одних и тех же данных, то точку входа, то кол-во секций, то еще что нить. Вот и задумал, написать паккадж, но возник вопрос, как у нормального ленивого человека: "А вдруг уже есть?". Полез в гугл, спросил, а он говорит, что вроде бы нету. вот и спрашиваю, есть у кого нить уже готовое че нить? Если нет, то может кто-то подсодиниться к проекту, чтобы я его более грамотным сделал и более нужным! ----- My love is very cool girl. ![]() |
|
Создано: 10 декабря 2006 10:42 · Личное сообщение · #2 |
|
Создано: 10 декабря 2006 10:42 · Поправил: Hellspawn · Личное сообщение · #3 |
|
Создано: 10 декабря 2006 10:46 · Личное сообщение · #4 |
|
Создано: 10 декабря 2006 10:46 · Поправил: sniperZ · Личное сообщение · #5 |
|
Создано: 10 декабря 2006 10:47 · Личное сообщение · #6 |
|
Создано: 10 декабря 2006 10:53 · Личное сообщение · #7 |
|
Создано: 10 декабря 2006 11:00 · Личное сообщение · #8 |
|
Создано: 10 декабря 2006 11:02 · Поправил: theCollision · Личное сообщение · #9 XQuader Шоб ты в них што-то разобрал, тебе надо быть Эйнштейном! Hellspawn Спасибо, буду глядеть! HoBleen Именно это я и хочу!!! При чем без мэппирования, а только с ReadFile,WriteFile. Почему? Потому что NTFS позволяет создавать файлы в 128 Гб и ничто не мешает человеку создать такой exe-файл! Сейчас мне не надо открывать такие файлы, но могу ли я закладываться что и в будущем мне этого не потребуется?! А я ленивый и не хочу много работать над одним и тем же! ----- My love is very cool girl. ![]() |
|
Создано: 10 декабря 2006 11:06 · Личное сообщение · #10 |
|
Создано: 10 декабря 2006 11:17 · Личное сообщение · #11 theCollision пишет: При чем без мэппирования, а только с ReadFile,WriteFile. Почему? Потому что NTFS позволяет создавать файлы в 128 Гб и ничто не мешает человеку создать такой exe-файл! Хм.. думаю, что с ReadFile у тебя будет не меньше мороки, чем при mapping'e. Ведь заголовки находятся в одной (ну, нескольких) маленькой области памяти, и с этим проблем не должно возникнуть, а чтение самих секций по-любому будет связано с проблемами размера. А реализацию, скорее всего, лучше сделать в виде класса. ![]() |
|
Создано: 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. ![]() |
|
Создано: 10 декабря 2006 17:42 · Личное сообщение · #13 |
|
Создано: 10 декабря 2006 20:53 · Личное сообщение · #14 |
|
Создано: 10 декабря 2006 22:17 · Личное сообщение · #15 |
|
Создано: 10 декабря 2006 22:44 · Личное сообщение · #16 |
|
Создано: 10 декабря 2006 23:58 · Личное сообщение · #17 xShadow Занятный модуль! ![]() PE_Kill [quote]theCollision без маппирования тебе придется пол загрузчика виндовс разобрать[/qoute] А что делать? Можно конечно чем-то готовым! Но зачем лучше написать снуля,т.к. будешь шарить где у тебя че находится! В чужом же сорце тоже не факт что все правильно! ----- My love is very cool girl. ![]() |
|
Создано: 11 декабря 2006 00:12 · Личное сообщение · #18 |
|
Создано: 11 декабря 2006 00:29 · Личное сообщение · #19 |
|
Создано: 11 декабря 2006 00:43 · Личное сообщение · #20 |
|
Создано: 11 декабря 2006 00:56 · Личное сообщение · #21 |
|
Создано: 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/ ![]() |
|
Создано: 11 декабря 2006 02:26 · Личное сообщение · #23 |
|
Создано: 11 декабря 2006 07:17 · Личное сообщение · #24 seeq пишет: Так как, даже простенькую Rva2Offset правильно реализовать не каждый сможет. я бы не сказал что простенькую, но реализовать дейтвительно трудно. (пример пе-ид, там она часто работает неверно) theCollision записывай) помогу, опыт большой, да и есть файлы на которых надо тестить ![]() ----- [nice coder and reverser] ![]() |
|
Создано: 14 января 2007 12:28 · Личное сообщение · #25 |
|
Создано: 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. ![]() |
|
Создано: 16 января 2007 02:42 · Личное сообщение · #27 |
|
Создано: 16 января 2007 10:49 · Личное сообщение · #28 |
|
Создано: 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. ![]() |
|
Создано: 16 января 2007 23:53 · Личное сообщение · #30 theCollision ты не прав, важен не код, у тебя он вполне понятен даже при Component1.Structure1.SubStructure1.Field1[Index1].Value1 := tmp1; это не главное как написано, главное комментарии, есть будут хорошие комментарии к коду, то он всегда будет понятен. а проект интересный, но я бы подумал перенести его лучше в C#-версию, это более актуально, хотя Дельфи конечно тоже будет жить, просто в шарпе уже многое реализовано, нафига изобретать велосипед ![]() |
. 1 . 2 . >> |
![]() |
eXeL@B —› Программирование —› Разработка паккаджа "PEformat.bpl" |