ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Непонятки [DELPHI]
  #1  
Старый 16.02.2010, 16:59
iGlass
Познающий
Регистрация: 14.05.2009
Сообщений: 92
Провел на форуме:
299447

Репутация: 5
По умолчанию Непонятки [DELPHI]

Всем доброго времени суток! Собственно не спрашиваю что и как..

А прошу объяснить кусочек кода...

Заранее спасибо!

Вот вопрос:
Собственно на днях прочитал статью:
_http://www.chemax.ru/articles/trainer_delphi_api_1.php

В статье абсолютно всё понятно кроме одного, вот вначале программы описаны две константы:

Address = $01B40C64;
PokeValue = $FFFFFFFF;


Вот с ними и непонятка...

Внимание вопрос!

Откуда берутся эти значения?

Каким софтом пользоваться?

И вот ещё вопросик думаю тоже в тему:

Есть у кого нибудь примеры с комментариями по:

CreateRemoteThread

Ещё раз огромное спасибо!

Последний раз редактировалось iGlass; 16.02.2010 в 19:12..
 
Ответить с цитированием

  #2  
Старый 16.02.2010, 21:53
AlexTheC0d3r
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме:
1229135

Репутация: 425
Отправить сообщение для AlexTheC0d3r с помощью ICQ
По умолчанию

Цитата:
http://msdn.microsoft.com/en-us/library/ms682437%28VS.85%29.aspx
CreateRemoteThread

poke = запись элемента данных

Адрес ищи в artmoney....
подойдут только те переменные в игре\программе, адреса значений которых не динамические...

ИМХО
 
Ответить с цитированием

  #3  
Старый 16.02.2010, 22:13
BrainDeaD
Постоянный
Регистрация: 09.06.2005
Сообщений: 531
Провел на форуме:
3516666

Репутация: 439


По умолчанию

скорее всего, адреса - offsetЫ каких либо значений или функций которые манипулируются читом. возможно, что на твоём компе они будут другими (basepointer+offset) . для их поиска и изменения юзай cheatengine и ollydbg. всё это не так просто. читай туториалы по хаку игр, асму, крекингу.
 
Ответить с цитированием

  #4  
Старый 17.02.2010, 00:13
RDL_Rider
Познающий
Регистрация: 21.06.2009
Сообщений: 81
Провел на форуме:
77148

Репутация: 5
По умолчанию

ищи значения прогой "TSearch", она выдаёт дизассемблированный код в месте где значение изменяется - очень помогает в поиске указателя на значение. Address - указатель на изменяемое значение в игре, который ты и должен найти. В этом и вся сложность. Ты запускаешь игру - считываешь из неё значение указателя и по считанному адресу вписываешь PokeValue.

Цитата:
Сообщение от AlexTheC0d3r  
poke = запись элемента данных
ИМХО
AlexTheCoder, не усложняй.
ТС, Это всего-лишь то значение денег, hp или чего угодно, которое ты бы хотел в игре, его ты и записываешь вместо старого.

Последний раз редактировалось RDL_Rider; 17.02.2010 в 00:16..
 
Ответить с цитированием

  #5  
Старый 17.02.2010, 05:30
Jingo Bo
Познающий
Регистрация: 25.10.2009
Сообщений: 97
Провел на форуме:
604635

Репутация: 15
По умолчанию

На гугл и MSDN нам пофигу да?
Цитата:
HANDLE CreateRemoteThread(
HANDLE hProcess, // handle to process to create thread in
LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to thread security attributes
DWORD dwStackSize, // initial thread stack size, in bytes
LPTHREAD_START_ROUTINE lpStartAddress, // pointer to thread function
LPVOID lpParameter, // pointer to argument for new thread
DWORD dwCreationFlags, // creation flags
LPDWORD lpThreadId // pointer to returned thread identifier
);
Создаётся однафикственно как обычный поток. А вообще зачем это?
Цитата:
Address = $01B40C64;
PokeValue = $FFFFFFFF;
По той ссылке всё прекрсно закоментированно, что не понятно?
Цитата:
и ollydbg
Мышу молотком....


ТС, что тебе надо?
Если не хочешь искать сам софт, то напиши похожий(по теме). Я просто не пойму суть топика...По функци можно в MSDN найти, а про адрес и значение разжевать?
 
Ответить с цитированием

  #6  
Старый 17.02.2010, 12:07
flacs
Познающий
Регистрация: 28.01.2009
Сообщений: 90
Провел на форуме:
432613

Репутация: 80
По умолчанию

Цитата:
Address = $01B40C64;
PokeValue = $FFFFFFFF;

Откуда берутся эти значения?
Address - Виртуальный адрес в памяти, по которому нужно изменить значение.
PokeValue - Число (размер 4 байта).
т.е. через WriteProcessMemory() по этому адресу записывается значение размером в 4 байта.

Цитата:
Каким софтом пользоваться?
Artmoney, OllyDbg, IDA и подобными.

Цитата:
Есть у кого нибудь примеры с комментариями по:
CreateRemoteThread
Код:
{Level 0}
function InjectLibraryAPI(lpProcessID: Cardinal; lpDllname: String): LongBool;
var
  hProc: Cardinal;
  oAlloc: Pointer;
  cWPM: Cardinal;
  hRemThread: Cardinal;
begin
  result := false;
  SetLastError(ERROR_SUCCESS);
  hProc := OpenProcess(PROCESS_ALL_ACCESS, false, lpProcessID); // открываем процесс
  if hProc <> 0 then begin
    oAlloc := VirtualAllocEx(hProc, 0, length(lpDllname), MEM_COMMIT, PAGE_EXECUTE_READWRITE); // если существует выделяем память в процессе
    if oAlloc <> nil then begin
      if WriteProcessMemory(hProc, oAlloc, PChar(lpDllName), length(lpDllName), cWPM) = true then begin // если получилось выделить, то копируем туда содержимое своей DLL
        CreateRemoteThread(hProc, nil, 0, GetProcAddress(GetModuleHandle('kernel32.dll'), 'LoadLibraryA'), oAlloc, 0, hRemThread); // создаем удаленный поток, по адресу kernel32.dll -> LoadLibraryA, чтобы подгрузить DLL средствами WinAPI, в чужом процессе
        if GetLastError = ERROR_SUCCESS then result := true;
      end;
    end;
  end;
  CloseHandle(hProc); // закрываем Handle процесса
end;
 
Ответить с цитированием

  #7  
Старый 17.02.2010, 17:42
iGlass
Познающий
Регистрация: 14.05.2009
Сообщений: 92
Провел на форуме:
299447

Репутация: 5
По умолчанию

Выходит так: Берём Art Money, запускаем, ищем в игре допустим 1000 денег, допустим нашлось два значения, выбираем из них большее или меньшее?

P.S Всем респект за помощь!
 
Ответить с цитированием

  #8  
Старый 17.02.2010, 22:16
RDL_Rider
Познающий
Регистрация: 21.06.2009
Сообщений: 81
Провел на форуме:
77148

Репутация: 5
По умолчанию

Обычно берётся большее по адресу, хотя разницы я не вижу (или не понимаю)
Да, и не забывай про DMA ! Адрес значения, который ты найдёшь через ArtMoney поменяется при следующем запуске игры. Нужно искать указатель на этот адрес.

Последний раз редактировалось RDL_Rider; 17.02.2010 в 22:19..
 
Ответить с цитированием

  #9  
Старый 17.02.2010, 22:28
iGlass
Познающий
Регистрация: 14.05.2009
Сообщений: 92
Провел на форуме:
299447

Репутация: 5
По умолчанию

Ладно, потихоньку я вхожу в курс дела, можно немного подробнее про указатель? Или статейками поделиться ?
 
Ответить с цитированием

  #10  
Старый 18.02.2010, 00:49
Chrome~
Постоянный
Регистрация: 13.12.2008
Сообщений: 354
Провел на форуме:
1747641

Репутация: 175
Отправить сообщение для Chrome~ с помощью ICQ
По умолчанию

Про указатели написано на том же _http://www.chemax.ru/
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Читы Lilo Болталка 14 16.02.2010 22:49
Куплю читы на Freestyle Basketball Stаfford Разное - Покупка, продажа, обмен 1 29.11.2009 18:45
Удаление cookies на WinInet [DELPHI] GlooK С/С++, C#, Delphi, .NET, Asm 0 23.09.2009 15:22
Читы для кс1.6 [Delphi] CraZy. С/С++, C#, Delphi, .NET, Asm 9 05.06.2009 16:08
Читы Chrome~ С/С++, C#, Delphi, .NET, Asm 6 10.05.2009 16:05



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ