Перейти к содержанию

∟DarkPan

Пользователи
  • Постов

    42
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные ∟DarkPan

  1. ребята , помогите не хочет сканировать и менять сигнатуру , сканирую в браузере опера вообще не катит, вот функциии прроцедуры

     

     var    m_pID: integer;  m_hProc: THandle;  module: TModuleEntry32;  m_Sign: integer;  procName: string;  function DataCompare(data: PByte; sign: PByte; mask: PAnsiChar): boolean;begin  while mask^ <> #0 do  begin    if ((mask^ = 'x') and (data^ <> sign^)) then    begin      result := false;      exit;    end;    inc(mask);    inc(data);    inc(sign);  end;  result := true;end; function GetModuleInfo(const module_name: PChar; main_process: boolean): TModuleEntry32;var  snapshot: THandle;  module: TModuleEntry32;begin  snapshot := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, m_pID);  module.dwSize := sizeof(TModuleEntry32);  if (Module32First(snapshot, module)) then  begin    if (main_process) then    begin      CloseHandle(snapshot);      result := module;    end;    while (Module32Next(snapshot, module)) do    begin      if (StrIComp(PChar(ExtractFileName(module.szModule)), PChar(module_name)) = 0) then      begin        CloseHandle(snapshot);        result := module;      end;    end;  end;  result := module;end; procedure GetPID;var  snapshot: THandle;  pInfo: PROCESSENTRY32;begin  snapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);  pInfo.dwSize := sizeof(PROCESSENTRY32);  if (Process32First(snapshot, pInfo)) then  begin    while (Process32Next(snapshot, pInfo)) do    begin      if pInfo.szExeFile = procName then      begin        m_pID := pInfo.th32ProcessID;        CloseHandle(snapshot);        exit;      end;    end;  end; end; procedure Write(ProcessID: SIZE_T; WriteAdress: Integer; WriteValue: array of Byte);var  pHandle:LongInt;  Bytes : SIZE_T;  Aob_old_Protect_OFF: dword;  Aob_old_Protect_ON:dword;begin  pHandle:=OpenProcess(PROCESS_VM_READ or PROCESS_VM_WRITE or PROCESS_VM_OPERATION,false,ProcessID);  VirtualProtectEx(pHandle,ptr(WriteAdress),SizeOf(WriteValue),PAGE_EXECUTE_READWRITE,Aob_old_Protect_OFF);//Снятие протекции с памяти  Application.ProcessMessages;  WriteProcessMemory(pHandle,ptr(WriteAdress),(@WriteValue),SizeOf(WriteValue),Bytes);  VirtualProtectEx(pHandle,ptr(WriteAdress),SizeOf(WriteValue),Aob_old_Protect_OFF,Aob_old_Protect_ON);//Востановление протекции с памяти  CloseHandle(pHandle);End; function ScanSignature(base: Cardinal; size: SIZE_T; sign: PByte; mask: PAnsiChar): integer;var  mbi: MEMORY_BASIC_INFORMATION;  offset: integer;  buffer: PByte;  BytesRead: SIZE_T;  i: integer;begin  offset := 0;  while (offset < size) do  begin    VirtualQueryEx(m_hProc, Pointer(base + offset), &mbi, sizeof(MEMORY_BASIC_INFORMATION));    if (mbi.State <> MEM_FREE) then    begin      GetMem(buffer, mbi.RegionSize);      ReadProcessMemory(m_hProc, mbi.BaseAddress, buffer, mbi.RegionSize, BytesRead);      for i := 0 to mbi.RegionSize do      begin        if (DataCompare(buffer + i, sign, mask)) then        begin          FreeMem(buffer);          result := integer(mbi.BaseAddress) + i;          exit;        end;      end;      FreeMem(buffer);    end;    offset := offset + mbi.RegionSize;  end;  result := 0;                          // end; procedure TForm2.sCheckBox1Click(Sender: TObject);const  poisk: array [0..10] of byte =  ($66,$0F,$D6,$8D,$58,$FF,$FF,$FF,$C7,$85,$60); //Сигнатура поиска  zamena: array [0..10] of byte = ($90,$90,$90,$90,$90,$90,$90,$90,$C7,$85,$60); //Сигнатура замены  Mask = 'xxxxxxxxxx';begin     if sCheckBox1.Checked then  begin    GetPID();    if (m_pID <> 0) then    begin    module := GetModuleInfo(nil, true);    m_hProc := OpenProcess(PROCESS_ALL_ACCESS, false, m_pID);    m_Sign := ScanSignature(integer(module.modBaseAddr), module.modBaseSize, @poisk, Mask);    if m_Sign = 0 then    begin       sCheckBox1.Caption := 'Ошибка';    end    else    begin      Write(m_pID,m_Sign,zamena);      sCheckBox1.Caption := 'Деактивировать';    end;    end;    CloseHandle(m_hProc);  end  else  if sCheckBox1.Checked = False then  begin     Write(m_pID,m_Sign,poisk);     sCheckBox1.Caption := 'Активировать';  end;end;   
    Как я понял, нету просто доступа к правам памяти( ReadOnly/ и т.д.) но как же мне поправить это дело

    делаю на ХЕ5

    //NullAlex: заголовок темы изменил, с "ПОМОГИТЕ" на более информативный - "Проблема с поиском по сигнатуре". На будущее прошу учесть, что темы нужно называть информативно, чтобы заголовок отражал суть вопроса. Предупреждение устное, на этот раз.

  2. Вот лови исходник + модули сканера, и выбора процессов!

    https://yadi.sk/d/FlD-IeQwcKFVt

    Есть ещё модуль у меня, memoriscan.pas, сканиурет быстро, разные байты только нету "??", есть "xx"

    Поподробнее в скайпе можно, так же могу привести пример трейнера, Сканирование в потоке!

    Вот пример сканирования:

    Сканер для XE_2

    varAddress2: Tscanner_Faddress;====================================AOBScan(0, $7FFFFFFF, 'FF xx FF xx FF' , True, True);// True, True - это параметры доступа ( чтение, запись)    WriteB('90 90 90', 0);    case RunCheat(Address2) of      if_Activated:        begin          Result := 4;        end;      if_NotConnected:        begin          Result := 2;        end;      if_ErrorActivate:        begin          Result := 1;        end;    end;
    //NullAlex: используем тег [code_][_/code] (без нижнего подчеркивания)
    • Плюс 1
  3. и что *? ты решил похвастаться что он у тебя есть ? не вижу смисла ... я отписал Xipho что модуль не мой ... я просто его приукрасил .... вот и все ... + не разу не видел дабыл хоть кто то за последние 2-3 месяца пополнил раздел Delphi ...

    Пфф выбор процесса у меня круче :

    263e9028db3d.png

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

    Search.OPT_READPAGE_EXECUTEREADWRITE := True

    если подумать логично отвечает за запись - чтение -

    Добавь в скайп, cheater-33, я тебе покажу тоже кое чего, нет я не хвастался, а не увидел сообщение одно и всё, или дай свой скайп, надо обсудить кое что, вот мой выбор процесса:

    uai4remt.ujj_537f6ce697fe7.png

  4. попытайся в гугле найти ))) ыы ))) или качай Delphi 7 там .pass не нужен

    Это не твой модуль, а reenWizard, он писал его по заказу макса, и pas у тебя нету! у меня он есть!

    И выбор процесса круче!

    И есть дополнения к модулю

    Так. DenkA003, хоть трейнер писал и ты, но написан он на чужом движке, так что копирайты свои ты не имеешь права ставить, ибо это плагиат. Это уже второй твой такой поступок (первый был насчет перебивки копирайтов в чужой программе). Еще раз - и больше ни разу. То есть, еще один подобный поступок, и ты будешь исключен из группы разработчиков (Trainer Maker).

    Я знаю автора, очень хороший человек

    Кстати: Search.OPT_READPAGE_READONLY := True; вот это право поиска, оно 0 толку даёт, и удлиняяет время поиска!

  5. Вот скрипт по инстереснее

    +Также с некаторымы сигнатурами активация за 1 секунду!

    +Вылазиет сообщение "Сигнатура не найдена"

    +Короче

    +В 1 кнопку!

    +xD

    Ставим репку!

    ======================================================================

    function CEButton1Click(sender)

    results=AOBScan("?? ?? ?? ?? ?? ?? ?? ?? ?? ??", "+X-W-C)

    if(results==nil)then

    messageDialog('Сигнатура не найдена!',1,2)

    return end

    count=stringlist_getCount(results)

    for i=0,(count-1),1 do

    adressDarkPan=stringlist_getString(results,i)

    writeBytes(adressDarkPan, 0x??, 0x??, 0x??, 0x??, 0x??, 0x??, 0x??, 0x??, 0x??, 0x??)

    end

    messageDialog('Активировано!',2,2)--Script by DarkPan

    end

    ======================================================================

    ======================================================================

    function CEButton1Click(sender)

    byte = "?? ?? ?? ?? ?? ?? ?? ?? ?? ??"

    results=AOBScan(byte, "+X-W-C) --Флаги сканирования

    if(results==nil)then

    messageDialog('Сигнатура не найдена!',1,2)

    return end

    count=stringlist_getCount(results)

    for i=0,(count-1),1 do

    adressDarkPan=stringlist_getString(results,i)

    writeBytes(adressDarkPan, 0x??, 0x??, 0x??, 0x??, 0x??, 0x??, 0x??, 0x??, 0x??, 0x??)

    end

    messageDialog('Активировано!',2,2)--Script by DarkPan

    end

    ======================================================================

    А еслит ещо в поток поместить вообще супр будет, трейнер не будет виснуть!

    ======================================================================

    Ставим спасибки :-D :-D :-D

    HackingMemory, Dart Vanya, спасибо вам, за мои знания!

  6. Привет всем, отзовитесь на данное сообщение я хочу написать трейнер {Сканер сигнатур} на Delphi но не знаю как

    Вот если как то можно реализовать вот этот скрипт в Delphi

    function CEButton1Click(sender)

    results=AOBScan("Сигнатура!", "+X-W-C)

    if(results==nil)then

    showMessage(Сигнатура не найдена!)

    return end

    count=stringlist_getCount(results)

    for i=0,(count-1),1 do

    adress=stringlist_getString(results,i)

    writeBytes(adress, 0x??, 0x??, 0x??, 0x??, 0x??, 0x??, 0x??, 0x??, 0x??, 0x??)

    end

    showMessage("Активировано!")

    end

    Данный скрипт из Lua

    Буду очень благодарен!

  7. На почту ты сообщение вряд ли отправишь, а вот подцепиться к серваку при запуске и проверить обновления таблицы/скрипта/трейнера, и, при наличии обновления, скачать его - это самое милое дело. Другими словами - функционал автообновления.

    как расскажи дай скрипт
  8. ce_luasocket.rar

    Исходник:

    luasrc.rar

    Теперь удобным образом можно производить сетевые соединения ftp, http, smtp прямо из Lua кода.

    Если правильно всё установить, то можно например сделать так

    http = require("socket.http")
    print(http.request("http://forum.gamehacklab.ru"))

    И в lua консоли увидим кодовую разметку главного страницы нашего форума.

    Файлы распаковать в папку Autorun.

    -----------------------------------------------------

    1) Я думаю каким-то образом можно отправлять сообщения на некоторый почтовый адрес, о том что пользователь получил какую-то критическую ошибку (типа баг репорта);

    2) Можно скачивать какой-то контент для работы CE скриптов, который постоянно лежит на каком-то адресе ftp или html;

    3) Можно сделать что-то на подобии автоматического обновления;

    4) В общем можно много чего придумать, если фантазия позволит;

    а ка как сделать автообновление?

  9. Трейнер с вкладками??? :-D

    Да!!! [Я ОЧЕНЬ СОЖАЛЕЮ О ТОМ, ЧТО ПОЗВОЛИЛ СЕБЕ ИСПОЛЬЗОВАТЬ МАТ В ДИАЛОГЕ СО СТОЛЬ ВЫСОКОИНТЕЛЛЕКТУАЛЬНЫМИ ЛИЧНОСТЯМИ НА СИМ ФОРУМЕ. НАДЕЮСЬ Я НЕ ПРИЧИНИЛ НИКОМУ ВРЕДА, МОРАЛЬНЫХ СТРАДАНИЙ. ПРОШУ МЕНЯ ПРОСТИТЬ ЗА СТОЛЬ ДЕРЗКИЙ ПОСТУПОК. МНЕ ИСКРЕННЕ ЖАЛЬ]

    //Kvazimado

    Строгое замечание, за плохо завуалированный мат.

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.