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

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

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2011, 12:29   #11
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Цитата:
Как бы вам так намекнуть, что вы, мягко говоря, замучаетесь менять игру редактируя бинарники....
А зачем менять бинарник? Когда есть вещи по лучше.
VintProg вне форума Ответить с цитированием
Старый 12.12.2011, 12:34   #12
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Цитата:
Сообщение от VintProg Посмотреть сообщение
А зачем менять бинарник? Когда есть вещи по лучше.
Переписать заново ?))
Или вы думаете, что декомпилируете, что-то измените и запросто обратно скомпилируете ?
Даже если вы разберетесь как скомпилировать то, что вам выдает ИДА, не стоит думать что разобраться в асм листинге без нормальных меток, названий функции и комментариев настолько просто.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 12.12.2011, 12:37   #13
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

находишь функцию переписываешь ее, на C++, если переписал, то ее заменить не составит труда. А значит можно в эту функцию добавить что-то новое.
VintProg вне форума Ответить с цитированием
Старый 12.12.2011, 12:43   #14
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

И каким же это образом вы их собираетесь заменять ? ))
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 12.12.2011, 13:01   #15
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Код:
void injectFunction (DWORD dwAddress, void * pfnReplacement) {
//	dwAddress += dwLoadOffset;
	BYTE * patch = (BYTE *)dwAddress;
	*patch = 0xE9;	// JMP
	*(DWORD *)(patch+1) = (reinterpret_cast<DWORD>(pfnReplacement)-(dwAddress+5));	
}

и маленький пример:


смотри что делает функция, и затем разберем ее:

Код:
.text:004ACF60                                         _testCheat      proc near               ; CODE XREF: AddCharToCheatStringAndProcess+34p
.text:004ACF60                                                                                 ; AddCharToCheatStringAndProcess+55p
.text:004ACF60                                                                                 ; AddCharToCheatStringAndProcess+76p
.text:004ACF60                                                                                 ; AddCharToCheatStringAndProcess+9Cp ...
.text:004ACF60
.text:004ACF60                                         cheatString     = dword ptr  4
.text:004ACF60                                         string          = dword ptr  8
.text:004ACF60
.text:004ACF60 000 31 D2                                               xor     edx, edx
.text:004ACF62 000 53                                                  push    ebx
.text:004ACF63 004 8B 4C 24 08                                         mov     ecx, [esp+4+cheatString]
.text:004ACF67 004 55                                                  push    ebp
.text:004ACF68 008 8B 6C 24 10                                         mov     ebp, [esp+8+string]
.text:004ACF6C
.text:004ACF6C                                         loc_4ACF6C:                             ; CODE XREF: _testCheat+2A1j
.text:004ACF6C 008 8A 44 15 00                                         mov     al, [ebp+edx+0]
.text:004ACF70 008 84 C0                                               test    al, al
.text:004ACF72 008 75 0C                                               jnz     short loc_4ACF80
.text:004ACF74 008 30 C0                                               xor     al, al
.text:004ACF76 008 5D                                                  pop     ebp
.text:004ACF77 004 5B                                                  pop     ebx
.text:004ACF78 000 C3                                                  retn
.text:004ACF78                                         ; ---------------------------------------------------------------------------
.text:004ACF79 000 8D 84 20 00 00 00 00                                align 10h
.text:004ACF80
.text:004ACF80                                         loc_4ACF80:                             ; CODE XREF: _testCheat+12j
.text:004ACF80 008 89 D3                                               mov     ebx, edx
.text:004ACF82 008 83 FB 1B                                            cmp     ebx, 27         ; switch 28 cases
.text:004ACF85 008 0F 87 6D 02 00 00                                   ja      retnTrue        ; default
.text:004ACF8B 008 FF 24 9D E8 F4 68 00                                jmp     off_68F4E8[ebx*4] ; switch jump
.text:004ACF92
.text:004ACF92                                         loc_4ACF92:                             ; DATA XREF: .data:off_68F4E8o
.text:004ACF92 008 0F B6 D8                                            movzx   ebx, al         ; jumptable 004ACF8B case 0
.text:004ACF95 008 0F B6 04 11                                         movzx   eax, byte ptr [ecx+edx]
.text:004ACF99 008 83 C3 FD                                            add     ebx, -3
.text:004ACF9C 008 39 D8                                               cmp     eax, ebx
.text:004ACF9E 008 0F 84 5C 02 00 00                                   jz      loc_4AD200
.text:004ACFA4 008 5D                                                  pop     ebp
.text:004ACFA5 004 B0 01                                               mov     al, 1
.text:004ACFA7 004 5B                                                  pop     ebx
.text:004ACFA8 000 C3                                                  retn
.text:004ACFA9                                                                                     ; ---------------------........
Это надо базу открыть и смотреть потому как функция длинная...

Затем мы ее отреверсили вот она родная:

Код:
//Сравнивает закадированый чит с буффером строки

const char   deltasCheat[] = {-3,-5,-7, -1,-13,-27,-3,-7,-1,-11,-13,-8,-7,-32,
                             -13,-6,-28,-19,-10,-3,-3,-5,-7,-1,-13,-27,-3,-7};


bool __cdecl cheatcmp(const char* pszCheat, const char* pszString)
{
//004ACF60
 
for (int i = 0; i < 27; i++) {
    if (!pszString[i]) 
      return 0;
    if (pszCheat[i] - deltasCheat[i] != pszString[i])
      return 1;      
  }
  return 1;

};

и заменить ее нет проблем потом:

injectFunction(004ACF60, cheatcmp);

и все будет работать в игре, также. А значит мы можем и изменить функцию по своему.
VintProg вне форума Ответить с цитированием
Старый 12.12.2011, 13:30   #16
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Ну да теперь вижу, что понятие какое-то имеете о лоадерах. Жаль что чтобы нормально и полноценно изменить игру этого мало.. Но ладно не буду больше отговаривать )
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 12.12.2011, 14:11   #17
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Цитата:
Жаль что чтобы нормально и полноценно изменить игру этого мало
И полноценные изменяли...
VintProg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Адаптация стороннего скрипта Che Guevara JavaScript, Ajax 0 12.04.2011 08:36
Получение HTML кода стороннего сайта SuBwooFer JavaScript, Ajax 1 02.05.2010 22:21
Запуск стороннего файла CraftR14 Общие вопросы Delphi 8 17.04.2010 18:05
Переменные стороннего процесса SoLL Win Api 3 11.01.2009 16:32
Выполнение стороннего процесса KiDoki Общие вопросы Delphi 6 18.12.2008 20:44