Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> offset c++ 
:(
    Опции темы
microo10
  Дата 23.6.2012, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 21.1.2012

Репутация: нет
Всего: нет



Помогите разобраться с оффсетами,мне нужна какая нибудь документация,может быть книги...хотя бы описание..Не как не могу с ними разобраться,кто знает про них что нибудь отпишитесь пожалуйста:(
PM MAIL   Вверх
boostcoder
Дата 23.6.2012, 12:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



о чем конкретно речь идет?
PM WWW   Вверх
microo10
Дата 23.6.2012, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 21.1.2012

Репутация: нет
Всего: нет



Цитата(boostcoder @ 23.6.2012,  12:23)
о чем конкретно речь идет?

В том то и дело что я не знаю как используются оффсеты,они ищутся с помощью программы OllyDBG из dll библиотек, а в дальнейшем используются для написания тренеров для игр вот пример оффсета: 
Код

0x2644

вот один из исходников:
Код

#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>
#include <windows.h>
DWORD WINAPI Hacks(LPVOID)
{
bool weaponhack = false;
bool weaponhack1 = false;
bool weaponhack2 = false;
bool weaponhack3 = false;
bool weaponhack4 = false;

while(1)
{
DWORD CShell = (DWORD)GetModuleHandleA("CShell.dll");
DWORD* m16 = (DWORD*)((*(DWORD*)(CShell + Оффсет ))+25*4);
DWORD* m12 = (DWORD*)((*(DWORD*)(CShell +Оффсет ))+206*4); //m4 gold
DWORD* wep = (DWORD*)((*(DWORD*)(CShell + Оффсет))+351*4); //M4 silver
DWORD* wep1 = (DWORD*)((*(DWORD*)(CShell +Оффсет ))+532*4); //M4 liberty
DWORD* wep2 = (DWORD*)((*(DWORD*)(CShell + Оффсет))+121*4); //ak 47 scope
{
if(GetAsyncKeyState(VK_F1))
{ weaponhack2 = false;
weaponhack1 = false;
weaponhack = true;
weaponhack3 = false;
weaponhack4 = false;
}
}
if(weaponhack)
{

if ((m16 != NULL) && (m12 != NULL))
*m16 = *m12;

}
{
if(GetAsyncKeyState(VK_F2))
{ weaponhack = false;
weaponhack2 = false;
weaponhack1 = true;
weaponhack3 = false;
weaponhack4 = false;
}
}
if(weaponhack1)
{
if ((m16 != NULL) && (wep1 != NULL))
*m16 = *wep1;

}
{

if ((m16 != NULL) && (wep2 != NULL))
*m16 = *wep2;

if(GetAsyncKeyState(VK_F3))
{ weaponhack = false;
weaponhack2 = true;
weaponhack1 = false;
weaponhack3 = false;
weaponhack4 = false;
}
}
if(weaponhack2)
{

if ((m12 != NULL) && (wep2 != NULL))
*m12 = *wep2;

}
}
}





bool Ready2Hook()
{
if(GetModuleHandleA("CShell.dll") != NULL
&& GetModuleHandleA("ClientFx.fxd") != NULL)
return 1;
return 0;
}

DWORD WINAPI Wait(LPVOID)
{
while(!Ready2Hook()) Sleep(200);
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Hacks, NULL, NULL, NULL);
return 0;
}

BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);

if ( dwReason == DLL_PROCESS_ATTACH )
{
//optional
MessageBoxA(0, "Написал мудак™","Бла-бла", 0);


CreateThread(0,0,(LPTHREAD_START_ROUTINE)Wait,0,0, 0);
}
return 1;
}


Я вообше не могу понять как они используются,а создатели тренеров умалкивают....
В данном примере оффсеты берутся из CShell.dll...
PM MAIL   Вверх
microo10
Дата 23.6.2012, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 21.1.2012

Репутация: нет
Всего: нет



Эм я понял что оффсеты это смешение байтов вот пример:
Код

#include <stdio.h>
#include <stdlib.h>

int main()
{
   FILE* file;
   char buffer[ <сколько байт собрались читать> ];

   file = fopen( "super.test", "r+" );
   if( file != NULL )
   {
       if( fseek( file, <смещение от начала файла в байтах>, 0 ) == 0 )
       {
           if( fread( buffer, 1, sizeof(buffer), file ) == sizeof(buffer) )
           {
               // здесь меняем содержимое буфера (buffer)
               fseek( file, <смещение от начала файла в байтах>, 0 );
               fwrite( buffer, 1, sizeof(buffer), file );
           }
       }
       fclose( file );
   }
}

Мне бы какой нибудь туториал по данным функциям...
А вот еще 1:
Код

/****************************************************************************
* *
* File : dllmain.c *
* *
* Purpose : Generic Win32 Dynamic Link Library (DLL). *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/

#define WIN32_LEAN_AND_MEAN /* speed up */
#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <tchar.h>

/*
* Include our "interface" file and define a symbol
* to indicate that we are *building* the DLL.
*/
#define _JF_NOREC_
#include "JF_NOREC.h"

#define WeaponMgr 0xC48B90
#define NoRecoil1 0x053C
#define NoRecoil2 0x06A4
#define NoRecoil3 0x2DC5
#define NoRecoil4 0x36F4
#define NoRecoil5 0x0EEC
#define NoRecoil6 0x1054
#define NoRecoil7 0x11BC




void Hacks()
{


DWORD cCShell = (DWORD)GetModuleHandleA( "CShell.dll" );
DWORD pWeaponMgr = *(DWORD*)(cCShell + WeaponMgr);

float recoil_Value=0.0f;
while(1)
{

if (pWeaponMgr) 
{
for(int i=0; i<577; i++) 
{
if((*(DWORD*)((*(DWORD*)(cCShell+WeaponMgr))+(4*i)) ) != 0) 
{
DWORD pNoRecoil = *(DWORD*)(pWeaponMgr + (4*i));
for(int y=0; y<9; y++)
{
if(pNoRecoil) 
{
*(float*)(pNoRecoil + (NoRecoil1 + (4*y))) =recoil_Value;
*(float*)(pNoRecoil + (NoRecoil2 + (4*y))) =recoil_Value;
*(float*)(pNoRecoil + (NoRecoil3 + (4*y))) = recoil_Value;
*(float*)(pNoRecoil + (NoRecoil4 + (4*y))) = recoil_Value;
*(float*)(pNoRecoil + (NoRecoil5 + (4*y))) = recoil_Value;
*(float*)(pNoRecoil + (NoRecoil6 + (4*y))) = recoil_Value;
*(float*)(pNoRecoil + (NoRecoil7 + (4*y))) = recoil_Value;

}
}
}
}
}

Sleep(200);

}
}
/****************************************************************************
* *
* Function: DllMain *
* *
* Purpose : DLL entry and exit procedure. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/

BOOL APIENTRY DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
static int AlreadeRunned=0;
if(!AlreadeRunned)
{
DisableThreadLibraryCalls(hInstDLL);
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)Hacks,0, 0, 0);
AlreadeRunned=1;
MessageBeep(MB_OK);
MessageBox(0,"NoRecoil run! Enjoy ;)","www.crazyfrost.com",MB_OK);
}
/* Return success */
return TRUE;
}

Источник: http://fpteam-cheats.com/board/showthread.php?t=180943&page=6 


Это сообщение отредактировал(а) microo10 - 23.6.2012, 14:11
PM MAIL   Вверх
boostcoder
Дата 23.6.2012, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(microo10 @  23.6.2012,  14:09 Найти цитируемый пост)
Мне бы какой нибудь туториал по данным функциям

гугл -> fseek

PM WWW   Вверх
microo10
Дата 23.6.2012, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 21.1.2012

Репутация: нет
Всего: нет



Цитата(boostcoder @ 23.6.2012,  16:12)
Цитата(microo10 @  23.6.2012,  14:09 Найти цитируемый пост)
Мне бы какой нибудь туториал по данным функциям

гугл -> fseek

Спасибо!!!)))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0492 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.