Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2011, 15:12   #11
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Там исходник наглядно показывающий то, как делается патчинг байт в бинарном файле.

На delphi портанул:
Код:
procedure PathProcess;
var
  hw: HWND;
  hOpen, hToken, hCurrent: THandle;
  bret: Boolean;
  ReturnLength: DWORD;
  PID, TID: DWORD;
  Luid: Int64;
  nState, pState: TOKEN_PRIVILEGES;
  Data: DWORD;
  bAddres,bByte:DWORD;
begin
  hw := FindWindow(nil, 'Warcraft III');
  if hw <> 0 then
  begin
    hCurrent := GetCurrentProcess;
    Bret := OpenProcessToken(hCurrent, 40, hToken);
    if bret then
    begin
      LookupPrivilegeValue(nil, 'SeDebugPrivilege', Luid);
      nState.PrivilegeCount := 1;
      nState.Privileges[0].Luid := Luid;
      nState.Privileges[0].Attributes := 2;

      bret := AdjustTokenPrivileges(hToken, False, nState, 28, pState, ReturnLength);
      if bret then
      begin
        TID := GetWindowThreadProcessId(hw, PID);
        hOpen := OpenProcess(PROCESS_ALL_ACCESS or PROCESS_VM_OPERATION or PROCESS_VM_READ or PROCESS_VM_WRITE or PROCESS_TERMINATE, False, PID);
        {пишем в процесс}
        {
        Данные:
        0x006483B1    35
        0x006483D1    77
        0x006483E1    67
        }
        bAddres:=$006483B1;
        Data:=$35;
        WriteProcessMemory(hOpen,bAddres,Data,1,0);

        bAddres:=$006483D1;
        Data:=$77;
        WriteProcessMemory(hOpen,bAddres,Data,1,0);

        bAddres:=$006483E1;
        Data:=$67;
        WriteProcessMemory(hOpen,bAddres,Data,1,0);
        {Пишем в процесс}
        CloseHandle(hOpen);
      end;
    end;
  end;
end;

Последний раз редактировалось Человек_Борща; 06.05.2011 в 15:18.
Человек_Борща вне форума Ответить с цитированием
Старый 06.05.2011, 17:52   #12
logitech12
Пользователь
 
Регистрация: 07.04.2011
Сообщений: 44
По умолчанию

или я чего не понимаю...но зачем мне бинарный файл?
logitech12 вне форума Ответить с цитированием
Старый 06.05.2011, 21:42   #13
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Вопрос на засыпку:
А чем отличается бинарный файл от exe?
Ответ на него: НИЧЕМ!

Это набор байт. Память тоже бинарная. (нОлики и единицы). Это мы её видим как шеснадцатитричную где-то в hex-ах или где-либо ещё.

И это в каждой книге написано.(Ну у Фленова точно я такое прочитал)
Человек_Борща вне форума Ответить с цитированием
Старый 06.05.2011, 22:07   #14
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
как мне теперь изменить байты ?
Тебе сишный код для чего дали ?
Для того чтобы ты хотя бы сориентировался, какие WinAPI-вызовы и в какой последовательности потребуются ..
mss вне форума Ответить с цитированием
Старый 06.05.2011, 22:10   #15
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
зачем мне бинарный файл?
Файл тут фообще ни причем - Человек_Борща оговорился.
mss вне форума Ответить с цитированием
Старый 07.05.2011, 09:53   #16
Bl@ckGold
 
Аватар для Bl@ckGold
 
Регистрация: 07.05.2011
Сообщений: 5
Сообщение

Если адрес динамичен, то он должен зависить от базового постоянного, тоесть с помощью CE найди смещения (оффсеты), а после используй функции ReadProccesMemory и WriteProccesMemory. Если будут воспросы - пиши в ЛС.
Bl@ckGold вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отражение на листе значений из других листов alexarorel Microsoft Office Excel 1 20.04.2011 20:23
Совместимость других программ с Delphi Elitman Общие вопросы Delphi 2 10.05.2010 18:49
Изменение памяти других приложений mixer94 Общие вопросы Delphi 3 30.03.2010 20:31
Создать загрузчик других программ в свое окно fiddler Общие вопросы Delphi 4 25.11.2009 13:05
Блокирование других программ ar4i Общие вопросы Delphi 5 12.12.2006 14:59