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

 eXeL@B —› Программирование —› Сменить Entry Point
Посл.ответ Сообщение

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

Создано: 08 августа 2006 14:37 · Поправил: Модератор
· Личное сообщение · #1

Задача такая, надо сменить у файла EP. Для этого написал следующию процедуру:

Procedure ChangeEP(FileName:String; NEWEP:DWord);
var
FHandle : THandle;
PEHeaderOffset : Dword;
BRead : DWord;
begin
FHandle:= createfile(pchar(FileName),GENERIC_read,FILE_SHARE_READ,nil,OPEN_EXIST ING,0,0);
SetFilePointer(FHandle, $3C, nil, 0);
ReadFile(FHandle, PEHeaderOffset, SizeOf(PEHeaderOffset), BRead, nil);
SetFilePointer(FHandle, PEHeaderOffset + $28, nil, 0);
WriteFile(Fhandle, NEWEP, SizeOF(NEWEP), BRead,nil);
CloseHandle(FHandle);
end;

Но почему-то меняться не хочет. Я все правильно делаю? Подскажите где ошибка!



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

Создано: 08 августа 2006 14:56
· Личное сообщение · #2

GENERIC_read or GENERIC_write

-----
MicroSoft? Is it some kind of a toilet paper?





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

Создано: 08 августа 2006 14:59
· Личное сообщение · #3

ну можно ещё так

PE:=CreateFile(PChar(F_PEFilePath),GENERIC_READ or GENERIC_WRITE,FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);


-----
[nice coder and reverser]




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

Создано: 08 августа 2006 15:05 · Поправил: Tim
· Личное сообщение · #4

Hellspawn пишет:
FILE_SHARE_READ or FILE_SHARE_WRITE

ну зачем давать другим прогам потенциальную возможность нахимичить во время работы твоей? ;)

достаточно будет только FILE_SHARE_READ.

-----
MicroSoft? Is it some kind of a toilet paper?




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

Создано: 08 августа 2006 15:24
· Личное сообщение · #5

Спасибо ребята, совсем я стормозил



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

Создано: 08 августа 2006 17:28
· Личное сообщение · #6

GENERIC_ALL ;)

-----
HOW MUCH BLOOD WOULD YOU SHED TO STAY ALIVE



 eXeL@B —› Программирование —› Сменить Entry Point
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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