Посл.ответ |
Сообщение |
 Ранг: 271.6 (наставник), 2thx Активность: 0.3↘0 Статус: Участник
|
Создано: 04 января 2006 07:20 · Поправил: Spirit · Личное сообщение · #1
У меня возник вопрос, как на Delphi через Edit можно переименовывать секции.
VAR
SECTION_HEADER:ARRAY [1..MAX_SECTION_NUMBER] of SECTION;
/////////
begin if SECTION_HEADER[spirit1+1].SizeOfRawData>=$00000000
then begin {Тут два исхода}
{первый:}PE.SECTION_HEADER[spirit1+1].Name:='Edited'; //Если ставить эту строку, то все проходит
//нормально, но нельзя выбирать название секций непосредственно в программе.
{второй (нужный мне):}PE.SECTION_HEADER[spirit1+1].Name:=Edit2.Text; //Если ставлю такую строку,
//то начинается ругань: Incompatible types: 'Array' and 'TCaption'
sc:=sc+1;
Addlog('Section#'+IntToStr(sc)+' renamed to "Edited"');
end;
end;
//--------------------------------------------//
Можете закидать меня камнями, но сначала помогите.
З.Ы.: Странно, это второй топик, первый не появился на главной странице.
----- iNTERNATiONAL CoDE CReW | Сообщение посчитали полезным: |
|
 Ранг: 199.6 (ветеран), 12thx Активность: 0.1↘0 Статус: Участник www.uinc.ru
|
Создано: 04 января 2006 07:35 · Личное сообщение · #2
наверняка есть функция Move() а у TCaption есть метод Text. Поучи ООП и приведение типов ей богу.
| Сообщение посчитали полезным: |
 Ранг: 271.6 (наставник), 2thx Активность: 0.3↘0 Статус: Участник
|
Создано: 04 января 2006 07:58 · Личное сообщение · #3
А можно по русски, а то я что-то непонял?
----- iNTERNATiONAL CoDE CReW | Сообщение посчитали полезным: |
 Ранг: 266.8 (наставник), 5thx Активность: 0.22↘0.03 Статус: Участник very WELL :)
|
Создано: 04 января 2006 08:59 · Личное сообщение · #4
У каждой переменной есть тип.
У тебя типы не совпадают.
Ты пытаешься массиву непонятно из чего присвоить строку.
Как ещё понятнее-то?
| Сообщение посчитали полезным: |
 Ранг: 271.6 (наставник), 2thx Активность: 0.3↘0 Статус: Участник
|
Создано: 04 января 2006 09:09 · Личное сообщение · #5
WELL
Спасибо, не вчера родился!
Я прошу помочь! И я понимаю, что массивы просто так строку не присвоить,
Но ведь есть же !EP(exe pack), написан он на delphi, и там каким-то образом
Имена секций можно выбирать!
----- iNTERNATiONAL CoDE CReW | Сообщение посчитали полезным: |
 Ранг: 70.5 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 04 января 2006 10:53 · Поправил: 6aHguT · Личное сообщение · #6 |
 Ранг: 266.8 (наставник), 5thx Активность: 0.22↘0.03 Статус: Участник very WELL :)
|
Создано: 04 января 2006 10:53 · Личное сообщение · #7
Spirit
Тебе уже и так всё подробно объяснили.
Иди получше поучи программирование, раз ты таких элементарных вещей не можешь понять.
А ещё собрался писать прогу для работы с PE-форматом.
Так уж и пиши тогда полностью С НУЛЯ.
А чужие исходники юзать - много ума не надо.
Всё IMHO
| Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 04 января 2006 11:15 · Личное сообщение · #8
у меня тут возник вопрос =)
Spirit
6aHguT
что вы юзали при написании прог? если только дельфи (в нём описаны почти все структуры PE)
а не сторонние компоненты, то у меня есть несколько вопросов, просто я сам пишу прогу
для работы с PE небольшие косяки с импортом, но вроде разбираюсь... хотелось бы
узнать что-нить полезное =)
----- [nice coder and reverser] | Сообщение посчитали полезным: |
 Ранг: 70.5 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 04 января 2006 11:49 · Личное сообщение · #9
Hellspawn
Только дельфи без сторонних компонентов. Ну и вставки асма по необходимости.
| Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 04 января 2006 12:45 · Поправил: Hellspawn · Личное сообщение · #10
не стал создавать новую тему... не считаю это нужным... вот в чём дело..
var
fh,fm : thandle;
Fp : pointer;
pDosHeader : PImageDosHeader;
pNtHeader : PImageNtHeaders;
begin
Fh:=CreateFile(PAnsiChar(pe_file),GENERIC_READ,FILE_SHARE_READ,nil,OPE N_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
Fm:=CreateFileMapping(fh,0,PAGE_READONLY, 0, 0,nil);
Fp:=MapViewOfFile(Fm,FILE_MAP_READ, 0, 0, 0);
pDosHeader:=PImageDosHeader(Fp);
pNtHeader:=PImageNtHeaders(Pointer(Dword(pDOSHeader)+Dword(pDOSHeader._lfanew)));
так открываю файл... и смотрю его характеристики...
нашел в windows.pas описание
PImageSectionHeader = ^TImageSectionHeader;
_IMAGE_SECTION_HEADER = packed record
Name: packed array[0..IMAGE_SIZEOF_SHORT_NAME-1] of Byte;
Misc: TISHMisc;
VirtualAddress: DWORD;
SizeOfRawData: DWORD;
PointerToRawData: DWORD;
PointerToRelocations: DWORD;
PointerToLinenumbers: DWORD;
NumberOfRelocations: Word;
NumberOfLinenumbers: Word;
Characteristics: DWORD;
end;
вот только не как не получается узнать всё о секциях pe файла...
наверное я туплю +)
пишу:
pSections : PImageSectionHeader;
...
Move(Pointer(Dword(Fp)+$3C)^,PE_HEADEROFFSET,4);
Move(Pointer(Dword(Fp)+PE_HEADEROFFSET+$14)^,PE_NT_HEADERSIZE,2);
Move(Pointer(Dword(Fp)+PE_HEADEROFFSET+$18+PE_NT_HEADERSIZE+(1*40))^,pSections^,40)
это не правильно =\
----- [nice coder and reverser] | Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 04 января 2006 13:23 · Поправил: Hellspawn · Личное сообщение · #11
ой что то я совсем туплю =) сам разобрался...
может быть так:
var
pSections : _IMAGE_SECTION_HEADER;
...
PE_NT_HEADERSIZE:=0;
PE_HEADEROFFSET:=0;
Move(Pointer(Dword(Fp)+$3C)^,PE_HEADEROFFSET,4);
Move(Pointer(Dword(Fp)+PE_HEADEROFFSET+$14)^,PE_NT_HEADERSIZE,2);
Move(Pointer(Dword(Fp)+PE_HEADEROFFSET+$18+PE_NT_HEADERSIZE+(NM*40))^, pSections,40);
NM - номер секции, начиная с 0
40 - это как написано (IMAGE_SIZEOF_SECTION_HEADER = 40;)
ну всё пашет... теперь буду с импортом разбираться...
----- [nice coder and reverser] | Сообщение посчитали полезным: |
 Ранг: 271.6 (наставник), 2thx Активность: 0.3↘0 Статус: Участник
|
Создано: 06 января 2006 07:20 · Личное сообщение · #12
6aHguT
Огромное спасибо!
И объяснил и закидал!
----- iNTERNATiONAL CoDE CReW | Сообщение посчитали полезным: |
 Ранг: 271.6 (наставник), 2thx Активность: 0.3↘0 Статус: Участник
|
Создано: 06 января 2006 07:23 · Личное сообщение · #13
WELL
Ты уже достал!
Если ты модер, это еще не значит
что ты должен совать свои умные 5 копеек
в каждый топик!
Я нормально попросил помощь, вот бандит
мне помог, за что ему огромное спасибо!
А ты все встреваешь, а помочь ничем не можешь!
З.Ы.: Можешь забанить меня после этого, но задумайся
над этими строчками!
----- iNTERNATiONAL CoDE CReW | Сообщение посчитали полезным: |
 Ранг: 271.6 (наставник), 2thx Активность: 0.3↘0 Статус: Участник
|
Создано: 06 января 2006 07:25 · Личное сообщение · #14
Hellspawn
А что у тебя с импортом?
Там же элементарно, если тебе нужно узнать
его адрес или размер.
----- iNTERNATiONAL CoDE CReW | Сообщение посчитали полезным: |
 Ранг: 271.6 (наставник), 2thx Активность: 0.3↘0 Статус: Участник
|
Создано: 06 января 2006 07:31 · Поправил: Spirit · Личное сообщение · #15
Hellspawn
Я пишу прогу для работы с секциями (to Well и без чужих исходников!  )
Использую только юниты (из нестандартных) PE.pas от SMoKE, и PE_files.pas от незнаю кого.
Мне лично вставки асма ненужны, т.к. это не пакер, протектор.
----- iNTERNATiONAL CoDE CReW | Сообщение посчитали полезным: |
Ранг: 191.8 (ветеран), 46thx Активность: 0.17↘0 Статус: Участник
|
Создано: 08 января 2006 06:39 · Личное сообщение · #16
Вот встретил "ARTeam PE Tutorial.chm" (май 2005) - может кому в помощь - правда 7 мег
intechhosting.com/~access/ARTeam/tutorials/file_info/download1.php?file=Portable_Executable_File_Format_Compendium_v11_by_Goppit.rar
| Сообщение посчитали полезным: |
 Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 08 января 2006 12:53 · Поправил: Hellspawn · Личное сообщение · #17
Spirit пишет:
Я пишу прогу для работы с секциями (to Well и без чужих исходников! )
Использую только юниты (из нестандартных) PE.pas от SMoKE, и PE_files.pas от незнаю кого.
Мне лично вставки асма ненужны, т.к. это не пакер, протектор.
а я вообще ничего стороннего не использую =) кроме своего одного юнита...
да размер и адресс это фигня... мне нужно узнить все импортированные
функции... их адресса там (чтоб потом в дизассемблере показать) ну и т.д. =)
код то есть... но он мне не очень нравитсься, не всегда корректно работает...
Вот встретил "ARTeam PE Tutorial.chm" (май 2005)
спасиб уже сливаю... да размер не имеет значения +)
анлим так сказать...
----- [nice coder and reverser] | Сообщение посчитали полезным: |
Ранг: 54.2 (постоянный) Активность: 0.04↘0 Статус: Участник
|
Создано: 08 января 2006 15:51 · Личное сообщение · #18
Spirit пишет:
PE_files.pas от незнаю кого.
Наверное это от DrGolova
| Сообщение посчитали полезным: |
 Ранг: 271.6 (наставник), 2thx Активность: 0.3↘0 Статус: Участник
|
Создано: 14 января 2006 11:50 · Личное сообщение · #19
DDA
А ты что экстрасенс?
Откуда ты знаешь какую я юниту использую,
когда ты ее не видел?
----- iNTERNATiONAL CoDE CReW | Сообщение посчитали полезным: |