Как найти оффсет в cheat engine

Go Back   UnKnoWnCheaTs — Multiplayer Game Hacking and Cheats

  • Anti-Cheat Software & Programming


  • General Programming and Reversing

  • Reload this Page

    [Tutorial] Finding Offsets Using Cheat Engine

    Finding Offsets Using Cheat Engine
    Finding Offsets Using Cheat Engine

    Save

    Authenticator Code

    Reply

    Thread Tools

    Finding Offsets Using Cheat Engine

    Old
    14th January 2017, 07:25 PM

     
    #1

    computation

    1337 H4x0!2

    computation's Avatar

    Join Date: Jan 2016


    Posts: 144

    Reputation: 2724

    Rep Power: 183

    computation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating community

    Finding Offsets Using Cheat Engine


    Hello everyone. Many people have trouble finding offsets in games and understanding what an offset is (talking to beginners here not you leet haxors). So I want to make an over kill tutorial to clear any confusions on offsets and a simple way to find them. This tutorial is aimed at the very beginner who is just looking to get into hacking but doesn’t know the basics of offsets and is having trouble starting off. This tutorial is not designed to target internal or external game hacking specifically but general(and simple) memory concepts. You should have an understanding of programming (I will be using C++ in the short code examples) or else this will be useless.

    What Is An Offset?
    So you might be thinking what is an offset or you might have used an offset to hack a game but not known what it is doing (sad life if so). To understand how to use offsets and find them we must understand what an offset is so we will look at a simple example. Lets take a look at a very simple structI will provide.

    Code:

    struct player {
    int health;
    int ammo;
    float x;
    float y;
    float z;
    };

    So here we have a struct. Now when we create a variable of a struct in memory a very awesome and simple thing happens. Every member in the struct gets created in memory back to back to back. Meaning our z coordinate is always the same distance to the beginning of the struct. The struct might start at a different memory address every time you run an application BUT the members in the struct are always the same distance away relative to each other. ammo will always come after health and nothing is declared in between them and so on and so forth. So what is an offset. An offset is just how far away something is (in bytes) relative to something else. In game hacking when we say offset we are often referring about offset from the start of our player (if we are talking about our player of course). Lets look at the struct but lets comment in the offsets that each member is.

    Code:

    struct player {
    	int health;		//0x0
    	int ammo;		//0x4
    	float x;		//0x8
    	float y;		//0xC
    	float z;		//0x10
    };

    how do we know what the offsets are though? Well think about this for a second. If all of these members are in a struct, they will be allocated in memory right next to each other. If you know how many bytes each data type is we can do some simple addition. The first member in the struct is where the struct starts. So health is offset 0 bytes from the start of the struct because it is the start. And the next member is 4 bytes away from that (since health takes 4 bytes because its an int) so it is said to be offset 4 bytes. As long as you know the data type you can simply add how many bytes it is away from your reverence point (which is the start of the struct for us also called the start of local player). So an offset is just the number of bytes away from a reference point and in this case that’s the start of player. This is extremely simple but many «programmers» who make hacks use offsets but don’t understand what it actually is.

    Pointer To Local Player And Local Player
    To understand why offsets are use full we have to take a look at the bigger picture and how we get to a spot in memory where our offset will be useful. When hacking games we usually have a pointer to local player usually denoted as pLocalPlayer and that address points to local player. Then from there we have offsets to the things we want to access such as ammo. Lets look at a picture of this to give you a visual of how all that stuff works.

    We know the address of pointer to local player or pLocalPlayer. That address is 0x509B74(this could be anything we use this for reference). If we find out what that address points to it will always point to local player or localPlayer. localPlayer is a dynamic address so it will change every time we start the game and that’s why we need a way to find it every time we start the game.. Once we know where our localPlayer address is we know how to get to health, ammo, x, y, and z. We just add the number of bytes it is offset to localPlayer! Pretty simple. Now it is important to note that usually the player struct or class is way bigger and can contain thousands of variables so this is just extremely simplified so you can understand the concept of what all this means. I am not going to show how to find pointer to local player today but I might come back in a fill in how to do that if people want. For now lets focus on finding the offsets. The whole purpose of all the stuff mentioned above is in order to make a hack we need some way of getting to variables in memory every time. It would be ridicules if had to change the memory addresses in our application every time we started the game. That would defeat the purpose.

    Finding Offsets
    So lets open up assault cube for this example. I am going to give you the address of pointer to local player since I did not explain how to find that. The address is 0x509B74 that points to local player (it’s the same as the one i used in the picture but the player struct in assualt cube is different so don’t mix that up). Attach cheat cheat engine to assault cube. Now lets get to local player. Go to add address manually in the bottom right of cheat engine. check pointer then add 0x509B74 (since the address of pointer to local player).

    Now if we hit okay we now have what localPlayer is. Remember if you close the game and reopen it the address will change since its not static but dynamic.

    I renamed the description to pLocalPlayer so I can remember what it is. Under where it says address there is a memory address. That is what pLocalPlayer points to and that is localPlayer. So now we know what address localPlayer is lets find some offsets. There are several ways to do this and I will show you one simple way. We will want to find the dynamic address of what ever offset we want to get. So lets look at ammo and get that offset. You will want to set scan type to exact value and value type to 4 bytes and the value is 20. Since we did not fire and our ammo reads 20.

    Now we want to hit scan and thousands of results will show up. To limit that down shoot a couple bullets and then under value change it to how many bullets you have left and hit next scan. This will throw out all the addresses that don’t have that value meaning it will limit down the possibilities. Keep doing this until you only have a couple addresses. On my second try I got 2 addresses.

    you can double click on the address to bring them down to our address table. Now double click on one of the addresses values and change it to what ever you would like. If it changes the value of your ammo in game then you found the dynamic address of your ammo and you can shoot and test this out.
    Now lets think about this logically. If the members of a struct or class is always declared in memory together and in the same order we can find an offset. Now if we know some address that it starts at (localPlayer in this case) and we know an address of one of the members in the struct such as our ammo, then we could subtract localPlayer address from ammo address and it would leave us with how many bytes away that member is in the struct from the start of the struct! Its just taking two numbers and finding how far apart they are. So here are the addresses I have for local Player and Ammo

    If we take ammo address which is 0xE7A4E0 and subtract localPlayer from it which is 0xE7A390 we get 0x150. That means that the ammo address is 150 bytes away from the start of localPlayer and since ammo is part of the player struct in assault cube the offset will always stay the same even if we restart the game since how structs and classes and things are declared in memory. Now if you did this your addresses would be different but you would get the same offset once doing the math. Now you can go and find any other address and do the same. Go try finding your health, x, y, z coordinates and any other thing you want. Remember that there are other methods of scanning in cheat engine. You probably won’t use exact value for your x, y, and z coordinate cause you don’t know them and also coordinates are usually floats so under type you would change 4 bytes (an int) to float.

    The Bigger Picture
    This stuff isn’t hard! If you do some research about how things are allocated in memory and you use your brain you can figure stuff out easily. Just by knowing subtraction and how a struct is allocated in memory we found an offset. Its very simple. If you have any doubts about memory make an application and look at it in cheat engine to clear your confusion. Also why do all of this if you can go to a forum post with all the addresses? Well because knowing how to get things in memory strengthens your understanding and you won’t always have a post with information you need so start learning how to do things yourself! Good luck on the beginners starting out I hope this helped in some way or another.



    Last edited by aixxe; 14th January 2017 at 07:31 PM.
    Reason: fix image links


    computation is offline

    Reply With Quote

    Old
    14th January 2017, 07:27 PM

     
    #2

    WasserEsser

    Site Administrator

    WasserEsser's Avatar

    Join Date: Jun 2013


    Posts: 4,818

    Reputation: 122812

    Rep Power: 413

    WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!WasserEsser has a huge epeen!

    Recognitions
    Members who have contributed financial support towards UnKnoWnCheaTs.
    Donator

    (43)

    Awarded to members who have donated 10 times or more.
    Gratuity

    (4)

    This certification is awarded to forum staff members that are educated in the fields of reverse engineering and file analysis. All forum staff members with this certification have successfully gone through the process of becoming certified, which includes an individual assessment by upper staff, and the requirement of passing an internal file analysis examination. Anyone with a File Analysis certification is trusted by upper staff to be able to safely and competently approve files within UnKnoWnCheaTs, and only forum staff members that are certified file analyzers have permission to approve files within the UnKnoWnCheaTs downloads section.
    File Analyzer

    This award is given to a participant that was awarded first, second, or third place in an UnKnoWnCheaTs community contest.
    Contest Winner

    (1)

    Points: 236,129, Level: 59

    Points: 236,129, Level: 59 Points: 236,129, Level: 59 Points: 236,129, Level: 59

    Level up: 20%, 257,871 Points needed

    Level up: 20% Level up: 20% Level up: 20%

    Activity: 42.9%

    Activity: 42.9% Activity: 42.9% Activity: 42.9%

    Last Achievements
    Finding Offsets Using Cheat EngineFinding Offsets Using Cheat EngineFinding Offsets Using Cheat EngineFinding Offsets Using Cheat Engine

    Award-Showcase
    Finding Offsets Using Cheat Engine

    @computation Use the direct links to the images. (Rightclick on the image and copy the direct link)

    __________________


    WasserEsser is online now

    Reply With Quote

    Old
    14th January 2017, 07:48 PM

     
    #3

    computation

    1337 H4x0!2

    computation's Avatar


    Threadstarter

    Join Date: Jan 2016


    Posts: 144

    Reputation: 2724

    Rep Power: 183

    computation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating community

    Quote:

    Originally Posted by WasserEsser
    View Post

    @computation Use the direct links to the images. (Rightclick on the image and copy the direct link)

    Sorry about that. Thanks for the fix!


    computation is offline

    Reply With Quote

    Old
    15th January 2017, 03:51 AM

     
    #4

    Slayer

    Master Contributor

    Slayer's Avatar

    Join Date: Jan 2016

    Location: USA


    Posts: 1,297

    Reputation: 17363

    Rep Power: 209

    Slayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UCSlayer Will always be a legend at UC

    Recognitions
    Award symbolizing a retired staff member who dedicated a notable amount of time and effort to their past staff position.
    Former Staff

    Members who have contributed financial support towards UnKnoWnCheaTs.
    Donator

    (2)

    Points: 37,008, Level: 29

    Points: 37,008, Level: 29 Points: 37,008, Level: 29 Points: 37,008, Level: 29

    Level up: 29%, 1,792 Points needed

    Level up: 29% Level up: 29% Level up: 29%

    Activity: 2.1%

    Activity: 2.1% Activity: 2.1% Activity: 2.1%

    Last Achievements
    Finding Offsets Using Cheat EngineFinding Offsets Using Cheat EngineFinding Offsets Using Cheat Engine

    Looks neat, but definitely add or update this and touch on finding pointers. Very important skills. Otherwise, this was simple and neat, great explanation!

    Kudos,

    ~Slayer1250~

    __________________

    Quote:

    Originally Posted by Synraw
    View Post

    Don’t blame me, blame the japanese. Nuke them once and they fight back with a weapon far more dangerous

    Quote:

    Originally Posted by gorkx
    View Post

    Bluntly: WHAT FUCK IS YOU PEOPLES GOD DAMN PROPBLEM? you are the most disterbingly egotistical little-endian bags ever! This isn’t…don farmer going ooff to risk jail time to further chaos,and market theory. this is a gots damn video game motherfuckers. jesus fucking christ.


    Slayer is offline

    Reply With Quote

    Old
    24th January 2017, 02:21 PM

     
    #5

    vergil250493

    n00bie

    vergil250493's Avatar

    Join Date: Aug 2014


    Posts: 12

    Reputation: -37

    Rep Power: 0

    vergil250493 is becoming a waste of our time

    Points: 6,013, Level: 8

    Points: 6,013, Level: 8 Points: 6,013, Level: 8 Points: 6,013, Level: 8

    Level up: 56%, 487 Points needed

    Level up: 56% Level up: 56% Level up: 56%

    Activity: 2.3%

    Activity: 2.3% Activity: 2.3% Activity: 2.3%

    Last Achievements
    Finding Offsets Using Cheat EngineFinding Offsets Using Cheat Engine

    Thanks for the tutorial to beginners ! you could also add on how to find pointers


    vergil250493 is offline

    Reply With Quote

    Old
    25th January 2017, 02:19 AM

     
    #6

    computation

    1337 H4x0!2

    computation's Avatar


    Threadstarter

    Join Date: Jan 2016


    Posts: 144

    Reputation: 2724

    Rep Power: 183

    computation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating communitycomputation is a legend in the cheating community

    Quote:

    Originally Posted by vergil250493
    View Post

    Thanks for the tutorial to beginners ! you could also add on how to find pointers

    thanks. there is so much on finding pointers that I feel it is not worth the time to say what can easily be found with a quick search.


    computation is offline

    Reply With Quote

    Old
    15th March 2017, 03:14 AM

     
    #7

    ccurtis20

    h4x0!2

    ccurtis20's Avatar

    Join Date: Jan 2013


    Posts: 104

    Reputation: 955

    Rep Power: 255

    ccurtis20 -- All Hail Teh Fuhrer of the codeccurtis20 -- All Hail Teh Fuhrer of the codeccurtis20 -- All Hail Teh Fuhrer of the codeccurtis20 -- All Hail Teh Fuhrer of the codeccurtis20 -- All Hail Teh Fuhrer of the codeccurtis20 -- All Hail Teh Fuhrer of the codeccurtis20 -- All Hail Teh Fuhrer of the codeccurtis20 -- All Hail Teh Fuhrer of the code

    Thanks for the tutorial/info. +Rep


    ccurtis20 is offline

    Reply With Quote

    Old
    3rd December 2017, 02:14 PM

     
    #8

    wtffwtf

    Junior Member

    wtffwtf's Avatar

    Join Date: Jun 2017


    Posts: 53

    Reputation: 162

    Rep Power: 145

    wtffwtf is known to create posts excellent in qualitywtffwtf is known to create posts excellent in quality

    Points: 4,738, Level: 7

    Points: 4,738, Level: 7 Points: 4,738, Level: 7 Points: 4,738, Level: 7

    Level up: 27%, 662 Points needed

    Level up: 27% Level up: 27% Level up: 27%

    Activity: 8.6%

    Activity: 8.6% Activity: 8.6% Activity: 8.6%

    Last Achievements
    Finding Offsets Using Cheat EngineFinding Offsets Using Cheat Engine

    How do you find the address of sth that is not changeable (not like the ammo or health) easily? I want to find the address of unlocking all guns for example, how is this possible?


    wtffwtf is offline

    Reply With Quote

    Old
    6th December 2017, 03:43 PM

     
    #9

    Lawlessvictory

    n00bie

    Lawlessvictory's Avatar

    Join Date: Dec 2017


    Posts: 22

    Reputation: 23

    Rep Power: 134

    Lawlessvictory has made posts that are generally average in quality

    Points: 1,061, Level: 2

    Points: 1,061, Level: 2 Points: 1,061, Level: 2 Points: 1,061, Level: 2

    Level up: 33%, 339 Points needed

    Level up: 33% Level up: 33% Level up: 33%

    Activity: 1.3%

    Activity: 1.3% Activity: 1.3% Activity: 1.3%

    Last Achievements
    Finding Offsets Using Cheat Engine

    Thanks for taking the time to write this, things like this help a lot.
    Now I have a much clearer explanation of what offsets are.


    Lawlessvictory is offline

    Reply With Quote

    Old
    17th January 2018, 01:12 AM

     
    #10

    chubbyH

    n00bie

    chubbyH's Avatar

    Join Date: Jan 2018


    Posts: 1

    Reputation: 10

    Rep Power: 131

    chubbyH has made posts that are generally average in quality

    Thinks for sharing


    chubbyH is offline

    Reply With Quote

    Old
    7th February 2018, 04:28 PM

     
    #11

    hieu832

    n00bie

    hieu832's Avatar

    Join Date: Jan 2018

    Location: HA NOI


    Posts: 9

    Reputation: 10

    Rep Power: 131

    hieu832 has made posts that are generally average in quality

    Points: 2,131, Level: 4

    Points: 2,131, Level: 4 Points: 2,131, Level: 4 Points: 2,131, Level: 4

    Level up: 5%, 669 Points needed

    Level up: 5% Level up: 5% Level up: 5%

    Activity: 1.8%

    Activity: 1.8% Activity: 1.8% Activity: 1.8%

    Last Achievements
    Finding Offsets Using Cheat EngineFinding Offsets Using Cheat Engine

    you can tutorial video plz.


    hieu832 is offline

    Reply With Quote

    Old
    8th February 2018, 11:47 AM

     
    #12

    jahaha

    A God

    jahaha's Avatar

    Join Date: Jul 2007


    Posts: 171

    Reputation: 858

    Rep Power: 388

    jahaha is a pure evil cheating machine - envied by mostjahaha is a pure evil cheating machine - envied by mostjahaha is a pure evil cheating machine - envied by mostjahaha is a pure evil cheating machine - envied by mostjahaha is a pure evil cheating machine - envied by mostjahaha is a pure evil cheating machine - envied by mostjahaha is a pure evil cheating machine - envied by most

    Points: 15,227, Level: 16

    Points: 15,227, Level: 16 Points: 15,227, Level: 16 Points: 15,227, Level: 16

    Level up: 17%, 1,173 Points needed

    Level up: 17% Level up: 17% Level up: 17%

    Activity: 4.8%

    Activity: 4.8% Activity: 4.8% Activity: 4.8%

    Last Achievements
    Finding Offsets Using Cheat EngineFinding Offsets Using Cheat EngineFinding Offsets Using Cheat Engine

    Quote:

    Originally Posted by hieu832
    View Post

    you can tutorial video plz.

    There’s many videos on this already, just open up youtube and search.

    Good guide btw. +rep


    jahaha is offline

    Reply With Quote

    Old
    9th February 2018, 08:21 AM

     
    #13

    tsunaweak

    n00bie

    tsunaweak's Avatar

    Join Date: Feb 2018


    Posts: 8

    Reputation: 10

    Rep Power: 130

    tsunaweak has made posts that are generally average in quality

    very helpful thank you so much ^_^


    tsunaweak is offline

    Reply With Quote

    Old
    15th February 2018, 09:43 AM

     
    #14

    Phnmz

    Senior Member

    Phnmz's Avatar

    Join Date: Feb 2015


    Posts: 78

    Reputation: 132

    Rep Power: 202

    Phnmz is in the shadow of all hacking legendsPhnmz is in the shadow of all hacking legends

    Points: 5,101, Level: 7

    Points: 5,101, Level: 7 Points: 5,101, Level: 7 Points: 5,101, Level: 7

    Level up: 67%, 299 Points needed

    Level up: 67% Level up: 67% Level up: 67%

    Activity: 2.3%

    Activity: 2.3% Activity: 2.3% Activity: 2.3%

    Last Achievements
    Finding Offsets Using Cheat EngineFinding Offsets Using Cheat Engine

    Good explanation, still need to know how to find pointers, and it would be about time someone explain how to do this on a game that has a simple anti-cheat at least, cause once you learn that from Assault Cube and try another game, you’re pretty much fucked as a beginner. (including myself)


    Phnmz is offline

    Reply With Quote

    Reply


    Similar Threads
    Thread Thread Starter Forum Replies Last Post
    [Tutorial] Cheat Engine — Finding Base Address w/ Pointer Scan xenocidewiki Programming for Beginners 16 26th June 2019 05:06 AM
    [Question] Finding offsets using IDA. Articxslack DayZ SA 7 22nd July 2016 09:51 AM
    [Help] Cheat Engine not finding Rsc nrodway11 ARMA 3 3 27th March 2015 04:12 AM
    [Discuss] Is Finding Transformation Pointer Possible With Cheat Engine? Falchon DayZ SA 1 22nd May 2014 08:52 AM
    Help with using OllyDBG finding adresses and offsets traplol2 ARMA 2 9 11th August 2012 10:13 AM

    Tags

    address, struct, player, offset, memory, ammo, bytes, local, offsets, start

    «
    Previous Thread
    |
    Next Thread
    »

    Forum Jump

    All times are GMT. The time now is 03:01 AM.

    Contact Us —
    Toggle Dark Theme

    Terms of Use Information Privacy Policy Information
    Copyright ©2000-2023, Unknowncheats� UKCS #312436

    Finding Offsets Using Cheat Engine Finding Offsets Using Cheat Engine

    no new posts

    Cheat Engine – программа для гейм-хакеров, предназначается для читерства в компьютерных играх. Принцип работы заключается в том, что показатели игры – достижения, жизни, патроны, ресурсы – хранятся в виде цифр по определенным адресам оперативной памяти компьютера. Указатели — память, которая содержит не значение параметра, а адрес нахождения параметра. Сканирование памяти игры в Cheat Engine делает доступным эти адреса найти и изменить цифры на те, которые нужны.

    Для чего нужен поиск указателей

    Переменные объекта в игре создаются динамически, чтобы не нагружать оперативную память игры и процесса – с текущими параметрами игр оперативной памяти не хватит. Соответственно, ведется учет, где в памяти размещается тот или иной параметр. Базовый элемент — указатель, а внутри – параметры здоровья, ресурсов, опыта, патронов, денег. При каждом новом запуске игры или нового уровня, адреса динамических игровых параметров переезжают в другую область памяти. Для изменения приходится снова и снова находить. Для того, что бы этого не делать применяется поиск указателей.

    Найти одноуровневый указатель

    Запускаем Cheat Engine. Находим и копируем в нижнее окно адрес переменной, которая отвечает за нужный параметр. Правым кликом по адресной строке вызываем меню, находим строку «Find out what writes to this address». Ставим break на запись и разрешаем запуск отладчика. Идем в игру и тратим часть золота или теряем одну жизнь — чтобы изменить показатель. Возвращаемся к Cheat Engine и видим в окне отладчика новые строки. Выбираем одну типа mov и переходим во вкладку «More information». Правым кликом открываем меню и выбираем «Copy info to clipboard» — скопированное переносим в блокнот, закрываем отладчик.

    Найти одноуровневый указатель в Cheat Engine

    Далее переходим в главное окно программы и в поисковой строке вводим адрес из указанной области 07AF.., отмечаем галочкой НЕХ и тип значения 4Б, — запускаем поиск. В результатах поиска ищем постоянный адрес – выделяется зеленым. Копируем в нижнее окно и кликаем дважды по строке «Adress».

    Как найти указатель в Чит Энджин

    Копируем адрес сверху, отмечаем галочкой «Pointer» и вставляем в нижнее выпавшее поле. Тип определяем исходный. Далее при помощи вендового калькулятора рассчитываем смещение между первоначальным адресом, копированным в блокнот и найденным зеленым. Результат вставляем во второе поле снизу и жмем «Ок». После этого правым кликом по значению – «Value» выбираем в меню «Show as decimal» — отражать показатели в десятичном формате. Итог сохраняем в типе файла *.СТ. При загрузке этого файла в Cheat Engine с запуском уровня не надо будет снова искать переменные.

    Найти одноуровневый указатель в Чит Энджин

    Найти многоуровневый указатель

    Многоуровневый – это такой, который ссылается не на искомую информацию, а на другой указатель. Таких уровней может найтись сколько угодно. Многоуровневая адресация усложняет процесс поиска цепочки указателей. Обработка занимает время. Сканирование памяти проводится 8-12 раз с перезапуском игры до тех пор, пока не выявится постоянный результат и один показатель не отразит хоть раз одинаковый результат с игровым параметром при перезагрузке.

    Cheat Engine (помогите разобраться!)

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

    пример:
    1. в инглише. вместо Exact value ставишь Unknown initial value (4 байта, скорей всего)
    2. скан
    3. побегал, например выносливость уменьшилась, ставишь паузу, так как значение не должно равняться или быть больше того, которое искали в первый раз, тут думаю понятно почему, выставляешь Decreased value (уменшилось)
    4. скан
    5. отдохнул, выносливость увеличилась, ставишь Increaced value (увеличилось)
    6. скан
    7. повторить процедуру с пункта 3 до нахождения нужного значения
    таким образом можно найти практически любые значения не отображаемые в числовом виде

    трейнер скачай, проще будет. или таблицу для Cheat Engine поищи, может есть. по мне так табличка самое оно

    [СТАТЬЯ] Находим указатели в играх

    Я пишу эту статью исключительно для новичков, но она может быть полезна и бывалому читеру.Здесь, в отличии от других гайдов, я буду объяснять почти каждое действие и вдаваться в подробности.

    Как вы уже заметили, находя значение жизней и тому подобных, при перезапуске игры их значение заменяется на . Это означает что у вашего значения поменялся адресс.У этого значения есть указатель, который неизменен.Их может быть и больше.В этой статье я научу вас их находить.Приступим.

    Я возьму для примера tutorial cheat engine step 8.Везде принцип один и тот же, то-есть таким же образом вы сможете найти указатели во многих играх, в том числе и в Perfect world, Jade Dinasty.

    Во первых если у вас нету программы которая работает с памятью, нужно скачать программу Cheat engine.Ее можно скачать с офицального сайта — http://www.cheatengine.org/
    Переходим по ссылке, нажимаем download cheat engine, качаем, устанавливаем.

    Открываем Tutorial-i386.exe в папке с программой.
    Мы видим такое окно:
    В поле password вводим пароль 8 ступени — 525927 и жмем ок.

    Открываем Cheat Engine нажимаем на светящийся монитор и выбираем процесс Tutorial-i386.exe

    Теперь настройка закончена.Перейдем к взлому.

    Смотрим на окошко туториала —
    Там есть две кнопки — change value и change pointer.Из этого уже известно что там будет хотя бы один указатель.И есть значение, в данном случае оно у меня 1621.

    Переходим в окно Cheat Engine и в строку value вводим 1621.Ничего не меняем.Жмем first scan.Если оно одно — хорошо.Если несколько, жмем change value в строку вводим следующее значение и жмем next scan.

    Жмем на значение два раза и оно появляется внизу.Перейдем к находке указателей.
    Жмем внизу по значение правой клавишей мыши и жмем find out what writes to this adress.

    Появится новое окно.Оно спросит разрешение, нажмите yes.
    Перейдите в туториал и нажмите change value.В том окне появится функция.Жмем по ней и more info.Зеленым выделено смещение.Его нужно запомнить, оно понадобится нам позже.Желтым указан указатель в hex’e.Это первый указатель, а их здесь 4.

    Переходим в окно Cheat Engine и жмем new scan.Ставим галку напротив hex и вводим адресс.

    Внизу жамкаем по нему find out what acces to this adress.

    Находим так указатели пока не дойдем до зеленого указателя, он статический, последний указатель.

    Теперь закрываем лишние вкладки cheat engine переходим в главное окно и жмакаем add adress manually.Жмем галку напротив pointer и 3 раза add pointer.Зеленый указатель вставляем в самую нижнюю строчку.
    Помните я говорил вам запомнить смещение?Теперь оно нам нужно.Ставим его в поля оффсет в порядке 18 0 14 c и сверху должен быть адресс самого первого значения.Внимание на рисунок.

    Жмем ОК и у нас внизу появилось еще одно значение.Замораживаем его — ставим крестик в окошке и изменяем значение на 5000.Переходим в окно туториала жмем change pointer — и вуаля!Туториал пройден.

    Всем привет. Я пишу ботов для MMORPG Guild Wars. Занимаюсь этим год — полтора. Все это не слишком сложно, потому что существует такой скрипт как GWA2.au3, данный скрипт был написан не мной, он находится в публичном доступе, каждый может его скачать и заниматься бытописанием для Guild Wars. В данном скрипте прописаны многие пути расположения тех или иных значений, такие как количество здоровья, координаты персонажа, место нахождение и тд, все это можно определить используя ту или иную функцию. Но увы всех функций не достаточно что бы писать новых ботов. Ниже приведу пример, нескольких функций.

    ; Пример первой функции
    Func GetPartySize()
       Local $lOffset[5] = [0, 0x18, 0x4C, 0x64, 0x24]
       Local $lPartyPtr = MemoryReadPtr($mBasePointer, $lOffset)
       Local $lReturn = MemoryRead($lPartyPtr[0], 'long') ; henchmen   
       Return $lReturn
    EndFunc   ;==>GetPartySize
    
    ; Пример первой 2 функции
    Func GetMissionStartDelay()
    	Local $lOffset = [0, 0x18, 0x44, 0x9C, 0]
    	Return MemoryReadPtr($mBasePointer, $lOffset)[1]
    EndFunc

    Первая функция определяет количество персонажей в команде. Второй определяет статус команды (лидер команды, начата ли миссия и тд.)
    Ниже MemoryReadPtr и MemoryRead.

    ;~ Description: Internal use only.
    Func MemoryReadPtr($aAddress, $aOffset, $aType = 'dword')
    	Local $lPointerCount = UBound($aOffset) - 2
    	Local $lBuffer = DllStructCreate('dword')
    
    	For $i = 0 To $lPointerCount
    		$aAddress += $aOffset[$i]
    		DllCall($mKernelHandle, 'int', 'ReadProcessMemory', 'int', $mGWProcHandle, 'int', $aAddress, 'ptr', DllStructGetPtr($lBuffer), 'int', DllStructGetSize($lBuffer), 'int', '')
    		$aAddress = DllStructGetData($lBuffer, 1)
    		If $aAddress == 0 Then
    			Local $lData[2] = [0, 0]
    			Return $lData
    		EndIf
    	Next
    
    	$aAddress += $aOffset[$lPointerCount + 1]
    	$lBuffer = DllStructCreate($aType)
    	DllCall($mKernelHandle, 'int', 'ReadProcessMemory', 'int', $mGWProcHandle, 'int', $aAddress, 'ptr', DllStructGetPtr($lBuffer), 'int', DllStructGetSize($lBuffer), 'int', '')
    	Local $lData[2] = [$aAddress, DllStructGetData($lBuffer, 1)]
    	Return $lData
    EndFunc   ;==>MemoryReadPtr
    
    ;~ Description: Internal use only.
    Func MemoryRead($aAddress, $aType = 'dword')
    	Local $lBuffer = DllStructCreate($aType)
    	DllCall($mKernelHandle, 'int', 'ReadProcessMemory', 'int', $mGWProcHandle, 'int', $aAddress, 'ptr', DllStructGetPtr($lBuffer), 'int', DllStructGetSize($lBuffer), 'int', '')
    	Return DllStructGetData($lBuffer, 1)
    EndFunc   ;==>MemoryRead

    Соответственно вопрос таков. Как я могу найти такие значения как $lOffset[5] = [0, 0x18, 0x4C, 0x64, 0x24] (первый пример) и $lOffset = [0, 0x18, 0x44, 0x9C, 0] (второе значение)???
    Эти значения уже найдены, но я хочу их найти самостоятельно, что бы потом я так же смог найти другие, которые отсутствуют в скрипте. Я понимаю что для это мне нужно использовать OllyDbg или Cheat Engine. Так же у меня есть инструмент для получения отправленных и полученных пакетов из сервера до шифрования. Фото ниже.

    di-N865.png

    То есть это ряд мне выдает программа, которая получила пакет от сервера. Вторая функция GetMissionStartDelay() возвращает тоже значение. 0x100 Integer => …..
    Я попытался сравнить $lOffset и hex ряд на фото, к сожаления сходств я не нашел. Пытался найти этот hex ряд с помощью OllyDgb и тоже без результатной. Буду рад получить любые советы для решения данного вопроса.
    И да, сам GWA2.au3 выложу ниже.

    Куратор(ы):  

    Bl00dRedDragon   

    Автор Сообщение
     

    СообщениеДобавлено: 30.08.2015 1:12 

    [профиль] [Фотоальбом]

    Куратор темы

    Статус: Не в сети
    Регистрация: 04.12.2009
    Откуда: Москва
    Фото: 13

    #77
    Официальный сайт:

    http://www.cheatengine.org/downloads.php

    Собственно есть ли среди нас те, кто пользуется сим чудом? Конечно в первую очередь программа направленна на взлом игр, в плане сделать себе бесконечные жизниденьги и тд.
    Самое интересное начинается, когда начинаешь копаться копаться в игре, на уровне кодов ассемблера (а иначе никак).
    Благодаря этой проге и некоторым туториалам много сам научился (работать и понимать asm, писать для него скрипты).

    Для изучения азов в самом Cheat Engine имеются туториалы:
    Файл Tutorial-x86_64.exe или Tutorial-i386.exe
    На английском вам расскажут и вы будете сразу же применять на практике знания о том, как где и зачем искать.
    #77

    Ссылки на полезные, по моему мнению, обучающие топики (не для новичков, для бывалых :D )
    Поиск нужных значений, с чего лучше начать? —

    http://forum.cheatengine.org/viewtopic.php?t=571888

    Изучаем AOB метод —

    http://forum.cheatengine.org/viewtopic.php?t=570083

    Пути поиска поинтеров, инъекции кода, AOB to data (Array Of Bytes), нахождение и работа с base адресом —

    http://forum.cheatengine.org/viewtopic.php?t=572465

    Как делать простейший фильтр —

    http://forum.cheatengine.org/viewtopic.php?t=583376

    Конечно тема в первую очередь для тех, кто уже заинтересован и имеет опыт общения с ПК на низком уровне.
    Т.е. без начального знания языка ассемблера будет тяжеловато.
    Совсем продвинутые гуру конечно знают и asm и lua (если игра Lua, то обычные методы её «исследования» никак не помогут). Ну и самое важное — это написание грамотных скриптов.

    ПРЕДУПРЕЖДЕНИЕ: Ни о каких Online играх мы НИКОГДА в данной теме не говорим и о способах их взлома. Чисто singleplayer или по крайне мере только об одиночном режиме. Это касается так-же и Онлайн любых игр в Вконтакте, Facebook. Забудьте. (тем более, что server side ничего хорошего не даст, без еще тонны знаний)

    Добавлено спустя 47 минут 4 секунды:
    ————————————————————————-

    Моя текущая игра — не могу никак найти нужный оффсет (30.08.2015)

    Собственно после рядя более-менее успешных работ с некоторыми играми, наткнулся на какую-то дичь. Советовался и с теми, кто более опытен, чем я (йа то новичок), пока безрезультатно (т.е. мне помогли, но все-равно есть большие проблемы).
    И так сама игра Relic Hunters Zero (http://store.steampowered.com/app/382490 — бесплатна стиме)
    казалось бы, что может быть в 60 мб? Как оказалось — полная каша из кода. ОООЧЕЕЕНЬ тяжело с ней работать и найти и написать нужное тебе.

    Первое:
    #77
    В принципе обычная картина для некоторых игр, но это первое неудобство. Жизни, опыт, патроны, здоровья врага, разрешение игры, уровень громкости — все обращается в 2 функции.
    Т.е. как минимум для всех действий нужен фильтр, ибо иначе это будет crash игры в любом случае.

    Второе:
    #77
    Была попытка поискать поинтеры. Конечно первым делом думает, что все будет зашибись и с 5ым уровнем поинтеров. После 2-3 перезапусков пк понимаем — у нас 0 хороших результатов.
    Тогда идем ва-банк — идем уже до 7уровня offset’ов. Разница в том, что 5 уровень пк для такой игры +- быстро обработает.
    А вот 7 ур…. Поиск шел 1500 секунд, после чего по 6 потокам суммарное количество поинтеров было 7 000 000 000 (7 млрд.), а общий всего этого — 90гб
    Конечно поиск я прервал, ибо стало и так ясно — пк не сможет все поинтеры найти до того, как кончиться место на HDD.
    А еще обработка 1 000 000 000 (млрд) поинтеров (их же надо еще отсеивать потом) занимает на моем пк порядка 50 минут. 50 х 7 = 350 минут или ~5 часов.
    5 часов что-бы найти поинтеры, которые, с очень большой вероятностью, в этой игре все-равно слетят на фиг и после очередного перезапуска (или на другом пк) будут указывать абсолютно в иное место (а то и вообще за пределы).

    Третье:
    AOB метод
    Как оказалось игра под завязку забита повторяющимся кодом. Сигнатуру очень сложно найти, ибо либо не найдет такой участок кода потом, либо таких участков будет больше 1 и адрес будет явно не тот.
    Ну либо да, сигнатура разная, но настолько разная, что если делать сравнение между ними и искать по результату — будет великое множество областей.

    Четвертое:
    Самое веселое, что мне приходилось делать на протяжении 5-10 часов (не за один день конечно) — это искать отличие в структуре между собой (если конкретнее: значением HP например) и всем тем, что еще обращается к функции.
    И за все это время был найден лишь один успешный оффсет:

    Код:

    [edi+10]

    Для патронов это было

    Код:

    cmp [edi+10],00018720

    т.е. сравнивая edi по offset’у +10 с 00018720, уникальным, как казалось, для игрока, вышло сделать бесконечные патроны и игра при этом не вылетала.
    Первые проблемы прочувствовались в том, что музыка между уровнями стала заедать. Т.е. не только патроны стали быть вечным значением в 99, но под этот фильтр так-же попал и музон игры из-за чего с ним начались траблы. Ладно, фиг с этим, не столь важно.

    Весь код:

    Код:

    [ENABLE]
    //code from here to ‘[DISABLE]’ will be used to enable the cheat
    alloc(newmem,2048)
    label(returnhere)
    label(originalcode)
    label(exit)

    label(check)

    newmem: //this is allocated memory, you have read,write,execute access
    cmp [edi+10],00018720
    je check
    jmp originalcode

    check:
    fld1
    fstp qword ptr [edi]
    jmp exit

    originalcode:
    fstp qword ptr [edi]

    exit:
    pop edi
    pop esi
    pop ebp
    jmp returnhere

    «RelicHuntersZero.exe»+109E4F:
    jmp newmem
    returnhere:

        [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    dealloc(newmem)
    «RelicHuntersZero.exe»+109E4F:
    fstp qword ptr [edi]
    pop edi
    pop esi
    pop ebp
    //Alt: db DD 1F 5F 5E 5D

    Для жизней

    Код:

    cmp  [edi+10],187B2

    А вот тут привычный, одиночный фильтр показал, что его одного недостаточно.

    Код:

    [ENABLE]
    alloc(newmem,512)
    alloc(hp,4)
    label(returnhere)
    label(infhp)
    label(originalcode)
    label(exit)

    newmem:
    cmp [edi+10],187B2
    jne originalcode
    jmp infhp

    originalcode:
    fstp qword ptr [edi]
    pop edi
    pop esi
    pop ebp
    jmp returnhere

    infhp:
    mov [hp],(float)999
    fld [hp]
    fstp qword ptr [edi]
    pop edi
    pop esi
    pop ebp

    exit:
    jmp returnhere

    «RelicHuntersZero.exe»+109E4F:
    jmp newmem
    returnhere:

      [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    dealloc(newmem)
    «RelicHuntersZero.exe»+109E4F:
    fstp qword ptr [edi]
    pop edi
    pop esi
    pop ebp
    //Alt: db DD 1F 5F 5E 5D

    Да, при таком раскладе у игрока становиться 999 жизней. Проблема в том, что у разрушаемых предметов, наших врагов (самое главное) — тоже.
    И вот тут то все (я и еще пара человек) увязли с концами.

    Часа 2-3 ушло на осмотр старой доброй структуры между нами и всем остальным в надежде найти отличия, кроме +10 оффсета (теперь было окончательно ясно, что он как уникален как минимум не только для игрока, но и для объектовврагов), что бы написать к фильтру еще дополнительные условия.
    ИИИИИИИИ… ЕГО НЕТ XD

    Все остальные оффсеты тупо либо вечно меняются, либо есть перехлест с врагамипредметами.

    На этом пока все и встало. Что в таком случае делать — не знаю. Кое кто сказал, что походу надо искать инструкцию, которая каждый раз так долбашит структуру игрока, а от нее уже дальше отталкиваться. Но и с этим пока все глухо.

    Однако есть и положительные моменты:
    1) По крайне мере есть скрипт на беск. патроны на любое оружие

    Код:

    [ENABLE]
    //code from here to ‘[DISABLE]’ will be used to enable the cheat
    alloc(newmem,64)
    alloc(mine,4)
    label(returnhere)
    label(originalcode)
    label(exit)

    label(check)

    newmem: //this is allocated memory, you have read,write,execute access
    cmp [edi+10],00018720
    je check
    jmp originalcode

    check:
    mov [mine],63
    fild [mine]
    fstp qword ptr [edi]
    jmp exit

    originalcode:
    fstp qword ptr [edi]

    exit:
    pop edi
    pop esi
    pop ebp
    jmp returnhere

    «RelicHuntersZero.exe»+109E4F:
    jmp newmem
    returnhere:

    [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    dealloc(newmem)
    «RelicHuntersZero.exe»+109E4F:
    fstp qword ptr [edi]
    pop edi
    pop esi
    pop ebp
    //Alt: db DD 1F 5F 5E 5D

    И на бесконечные звезды (они открывают следующие уровни)

    Код:

    [ENABLE]
    //code from here to ‘[DISABLE]’ will be used to enable the cheat
    alloc(newmem,64)
    alloc(star,4)
    label(infstars)
    label(returnhere)
    label(originalcode)
    label(exit)

    newmem:
    cmp [edi+8],73726550
    je infstars

    originalcode:
    fstp qword ptr [edi]
    pop edi
    pop esi
    pop ebp
    jmp returnhere

    infstars:
    mov [star],(float)99999
    fld [star]
    fstp qword ptr [edi]
    pop edi
    pop esi
    pop ebp
    jmp returnhere

    exit:
    jmp returnhere

    «RelicHuntersZero.exe»+109E4F:
    jmp newmem
    returnhere:

      [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    dealloc(newmem)
    «RelicHuntersZero.exe»+109E4F:
    fstp qword ptr [edi]
    pop edi
    pop esi
    pop ebp
    //Alt: db DD 1F 5F 5E 5D

    Я еще делал код на бесконечные гранаты, но там функции были похожие, а !!!ВНЕЗАПНО!!! регистр не edi, а esi.
    В чем проблема? Ну во-первых в том, что старый добрый псевдо уникальный оффсет +10 уже абсолютно не канал (ну при фильтрации на нем хотя бы игра не вылетала), а во вторых, да — не смог найти уникального оффсета. А следовательно нельзя сделать фильтр, а следовательно игра послала на хрен меня.

    З.Ы. Конечно вместо привычных, как пример,

    Код:

    mov [esi],99999

    приходилось делать что-то вроде

    Код:

    …..
    alloc(star,4)
    …..
    mov [star],(float)99999
    fld [star]
    fstp qword ptr [edi]
    …..

    Ибо иначе с FPU не поработаешь, на прямую не выйдет. Вроде бы абсолютно обычная вещь, только вот я до этого с таким не попадал в играх и не знал. Из-за этого крашнул игру раз 5 наверное, прежде, чем мне написали, как с этим надо работать.

    З.Ы.Ы. Еще прикол в том, что функции то 2 для большинства всего нужного. И все новоиспеченные скрипты (code inject’а) так-же влетают в эту область конечно. А это конечно же делает невозможным их одновременную активацию. Т.е. только 1 скрипт одновременно может работать.
    И, из-за неопытности, я пока не понял, как все это слить в 1 массу. (хотя бы звезды и патроны)


    _________________
    Den aller yngste greven, som der på skipet var, han ville visst trolova sig, enn sjølv så ung han var…
    DCS, X-Plane 11 player =3

    Реклама

    Партнер
     
    REALpredatoR

    Member

    Статус: Не в сети
    Регистрация: 14.06.2010
    Откуда: Сыктывкар
    Фото: 0

    Bl00dRedDragon писал(а):

    Ссылки на полезные, по моему мнению, обучающие топики (не для новичков, для бывалых )

    Зачем бывалым обучающие топики? :facepalm:

    Bl00dRedDragon писал(а):

    Конечно тема в первую очередь для тех, кто уже заинтересован и имеет опыт общения с ПК на низком уровне.Т.е. без начального знания языка ассемблера будет тяжеловато.

    Все кто владеют ПК, сразу должны изучать ассемблер? :facepalm:


    _________________
    Я снова тут :)

     
    Bl00dRedDragon

    Куратор темы

    Статус: Не в сети
    Регистрация: 04.12.2009
    Откуда: Москва
    Фото: 13

    REALpredatoR писал(а):

    Все кто владеют ПК, сразу должны изучать ассемблер?

    Ты что-то явно не так прочел. Написанно

    Цитата:

    опыт общения с ПК на низком уровне

    Конечно, чтобы общаться с ПК на самом низком уровне, самом прямом нужен, asm.
    И абсолютно бесполезно лезть в это дело, хотя бы немного не понимая его.

    Конечно, первое, что рекомендуется сделать любому новичку — это качать те же шутеры 98-2000 годов.
    Они во-первых все будут x32 бита, во вторых в большинстве случаев — с самыми основными инструкциями, которые легко понять и переписать.

    А если, типа как я, сразу лезть в современные игры — можно изначально на немного более сложные вещи наткнуться, как x64 архитектуру, с более сложными командами или на прямую работу с FPU, что изначально тоже несколько сложнее.

    REALpredatoR писал(а):

    Зачем бывалым обучающие топики?

    Интересный ты человек. Мне кажется не существует тех людей, которые бы умели абсолютно все в asm и знали, а так-же умели бы пользоваться любым софтом по максимуму.
    Бывалый в плане того, тут уже нужно уметь писать скрипты и понимать, что вообще происходит в том коде, который был сгенерированнаписан.

    Почему нельзя скажем вместо ASM заранее знать тот-же C#C++JAVA? Ну потому что любая игра — это не исходники. Из нельзя чем либо открыть, на высоком уровне. А смотреть машинные коды можно всегда и для всего — asm как раз. Т.е. он универсален.

    З.Ы. Правда игры можно взламывать и с ПОМОЩЬЮ C++JAVA, т.е. не через cheat engine писать все, а через IDE соот. Но при этом С++ с IDE будут предоставлять безграничный функционал для УЖЕ найденного кода, т.е. в ЛЮБОМ случае придется все-равно до этого поработать с asm и cheat engine.


    _________________
    Den aller yngste greven, som der på skipet var, han ville visst trolova sig, enn sjølv så ung han var…
    DCS, X-Plane 11 player =3

     
    Bl00dRedDragon

    Куратор темы

    Статус: Не в сети
    Регистрация: 04.12.2009
    Откуда: Москва
    Фото: 13

    Мы ломали, ломали и наконец то СЛОМАЛИ, УРААА XD

    Relic Hunters Zero все-же доламили. Очень забавным методом.
    Выставили уникальное значение хп себе -> потом всегда его и ищем, что бы поддерживать на том-же уровне.

    В итоге такой вот скрипт

    Код:

    [ENABLE]
    //code from here to ‘[DISABLE]’ will be used to enable the cheat
    alloc(newmem,2048)
    label(returnhere)
    label(originalcode)
    label(exit)

    label(check)
    label(health)
    label(health2)
    label(stars)

    alloc(mine,16)
    alloc(count,16)
    alloc(_do_inf_hp,8)
    alloc(_do_inf_ammo,8)
    alloc(_do_inf_stars,8)
    alloc(temp,8)
    registersymbol(mine)
    registersymbol(count)
    registersymbol(_do_inf_hp)
    registersymbol(_do_inf_ammo)
    registersymbol(_do_inf_stars)

    newmem: //this is allocated memory, you have read,write,execute access
    cmp [edi+10],00018723
    je check
    cmp [edi+10],000187B5
    je health
    cmp [edi+10],00018714
    je stars
    jmp originalcode

    check: // inf ammo too
    cmp [_do_inf_ammo],01
    jne originalcode
    fstp st(0)
    mov [temp],63
    fild [temp]
    fstp qword ptr [edi]
    jmp exit

    ///////////////////////////////////////////////////////////////////////////////
    health:
    cmp [_do_inf_hp],01
    jne originalcode
    cmp [count],01
    je health2

    fstp st(0)
    fldl2t
    fmul st(0)
    fmul st(0)

    fstp qword ptr [edi]
    mov [count],01
    jmp exit
    ///////////////////////////////////////////////////////////////////////////////

    originalcode:
    fstp qword ptr [edi]

    exit:
    pop edi
    pop esi
    pop ebp
    jmp returnhere

    ///////////////////////////////////////////////////////////////////////////////
    health2:
    cmp [edi+04],405E71A6
    jne originalcode

    fstp st(0)
    fldl2t
    fmul st(0)
    fmul st(0)

    fstp qword ptr [edi]
    jmp exit
    ///////////////////////////////////////////////////////////////////////////////
    stars:
    cmp [_do_inf_stars],01
    jne originalcode
    fstp st(0)
    mov [temp],1869F
    fild [temp]
    fstp qword ptr [edi]
    jmp exit

    ///////////////////////////////////////////////////////////////////////////////
    _do_inf_hp:
    db 0

    _do_inf_ammo:
    db 0

    _do_inf_stars:
    db 0
    ///////////////////////////////////////////////////////////////////////////////
    «RelicHuntersZero.exe»+109E4F:
    jmp newmem
    returnhere:

    [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    dealloc(newmem)
    dealloc(mine)
    dealloc(count)
    dealloc(_do_inf_hp)
    dealloc(_do_inf_ammo)
    dealloc(_do_inf_stars)
    dealloc(temp)
    unregistersymbol(mine)
    unregistersymbol(count)
    unregistersymbol(_do_inf_hp)
    unregistersymbol(_do_inf_ammo)
    unregistersymbol(_do_inf_stars)
    «RelicHuntersZero.exe»+109E4F:
    fstp qword ptr [edi]
    pop edi
    pop esi
    pop ebp
    //Alt: db DD 1F 5F 5E 5D

    Штуки типа

    Код:

    cmp [_do_inf_hp],01

    просто переключатели. Дело в том, что количество хп, патронов, звезды — все обращается сюда. Поэтому что-бы это все было в одной памяти, но могло по отдельности включаться (скажем я хочу ТОЛЬКО беск. здоровье), нужны такие переключатели.
    К ним конечно же попросту идут внешние скрипты типа:

    Код:

    [ENABLE]
    _do_inf_hp:
    db 01

    [DISABLE]
    _do_inf_hp:
    db 00

    Следующая игра, над которой работаю: Shoppe Keep. Вроде бы все начиналось неплохо, но в итоге привело к AOB и к тому, что не смог пока найти уникальную сигнатуру.


    _________________
    Den aller yngste greven, som der på skipet var, han ville visst trolova sig, enn sjølv så ung han var…
    DCS, X-Plane 11 player =3

     
    4e_alex

    Advanced guest

    Статус: Не в сети
    Регистрация: 03.12.2004

    REALpredatoR писал(а):

    Все кто владеют ПК, сразу должны изучать ассемблер?

    Программа вполне работает и без знания asm. В ней конечно есть возможность наделать самые разные и сложные скрипты. Но если просто хочется добавить себе деньжат (или поменять любую другую циферку), то можно обойтись без этого.


    _________________
    Enough expository banter! Now we fight like men! And ladies! And ladies who dress like men!

     
    Bl00dRedDragon

    Куратор темы

    Статус: Не в сети
    Регистрация: 04.12.2009
    Откуда: Москва
    Фото: 13

    4e_alex писал(а):

    Но если просто хочется добавить себе деньжат (или поменять любую другую циферку), то можно обойтись без этого.

    Ну с этим никто не спорит.
    Т.е. пока игра у вас работает, вы на одном и том-же месте, не на какие другие локации не переходиливас не убивали — значения хпденег и тд 100% в той-же области памяти.
    А вот после перезапуска уже и тд — все, пока.

    Но есть оговорка:
    А если захотелось скажем бесконечных патронов на ВСЕ оружия? Будешь адрес каждой пушки искать? :D Опять-таки здесь будет гораздо легче работать с 1ой единственной функций, чем каждый раз с 100 адресами.

    Еще момент: даже АСМ по сути отлично знать не надо. Сойдет его элементарное понимание. А он простой до жути. Тело скрипта CE сам писать, автоматически, умеет. От юзверя требуется, по сути, добавить детали.

    —————————————————————————————————————————————————————————

    Ну и писал, что ломаю Shoppe Keep сейчас. Уже взломал конечно же давно. Но он очень легкий в плане взлома, поэтому на нем внимания не заострил.

    Не знаю, стоит ли пробовать делать туториал по взлому чего либо? На ютубе есть их и так не мало.
    И конечно, если и буду делать туториал, то только на основе инъекции кода и aob. Ибо не вижу смысла их делать по чему-то вроде «Как найти свое значение ХП и заморозить его» — это уж совсем бред.


    _________________
    Den aller yngste greven, som der på skipet var, han ville visst trolova sig, enn sjølv så ung han var…
    DCS, X-Plane 11 player =3

     
    Bl00dRedDragon

    Куратор темы

    Статус: Не в сети
    Регистрация: 04.12.2009
    Откуда: Москва
    Фото: 13

    Думал такой хакнуть command and conquer 3 tiberium wars на бесконечные хп для себя, но чет не пошло. Прикол в том, что как обычно, надо искать отличие между ХП своих юнитовпостроек и врагасоюзников. Вроде бы что-то находил, но после тестов ВСЕГДА оказывалось, что значение не уникально и либо никто не неуязвим, либо все неуязвимы.

    Правда есть фишечка — там 3 смещения подряд идут с соот. 3 значениями. Если в текущей игре для активации чита делать сравнение ос всеми 3мя — то только я сам неуязвим. В чем трабла- эти значения каждую игру меняются и изначально приходиться опять узнавать, какие они по этим смещениям именно для себя самого.
    Т.е. надо бы как-то придумать, что с этим делать :D


    _________________
    Den aller yngste greven, som der på skipet var, han ville visst trolova sig, enn sjølv så ung han var…
    DCS, X-Plane 11 player =3

     
    Bl00dRedDragon

    Куратор темы

    Статус: Не в сети
    Регистрация: 04.12.2009
    Откуда: Москва
    Фото: 13

    Собстно продолжение банкета XD Ничуть не забросил этим заниматься.
    Заметил, что ссаные indie игры хрен взломаешь, ибо там везде этот тупой game engine или как там его — как relic hunters zero. Я так и не вдуплил нормально, как оно должно ломаться.

    Хоть какой-то видосик.

    DOOM новый вообще легко поддается. Комп перезапускал (для того, чтобы адресное пространство иначе на игру выделилось), игру перезапускал — все робит. Значит должно по крайне мере на этой версии у всех работать.
    С патронами все вышло легко, ибо 1 функция, которая отвечает только за эти самые патроны.
    С хп сразу несколько проблем нарисовалось:
    1) там округление происходит, а исходное значение во float несколько меньше, из-за чего мой первый поиск хп привел к 0 результатов. Когда начал искать «любимым» методом «увеличилось на» «уменьшилось на» cheat engine на первой иттерации дал 5 миллиардов адрессов, из-за чего все 16гб рам легли на хрен и все повисло :D Я уж думал придется все заново делать, перезапускать пк. Но обошлось. Кое-как до смерти сумел найти реальное значение хп (на видео видно, сколько там просто визуальных значений).
    2) movss очень простая функция, но, из-за длительного перерыва, забыл, как с ней работать. В итоге быстренько нагуглил изи.
    3) самое важное — функция для хп работает и на броню, и на хп мобов. В принципе обычный случай вполне, приходиться тогда использовать различия по структурам. На видео опять таки есть этот момент аж 2 раза, когда я заношу адреса в disssect datastuctures утилиту и смотрю различия. Сначала, мне казалось, что уникальность игрока заключается по смещению +30, в значении 12 (float). Ибо у всхе врагов было 3. Но оказалось, после перезапуска в SnapMap, что у игрока теперь там 4, а не 12. В итоге сошелся на том, что все мобы со значением 3 просто. И это работает… но не дай бог в игре попадается что-то, что обрабатывается этой функцией из враговразрушаемых предметов и по смещению 30 у него не будет значения 3 — он будет тогда тоже неуязвим. В принципе просто лень уже было все дотошно выяснять, вроде и так работает — норм. Если где будет прокол- значит надо искать другое уникальное значение.

    Кстати и структура хорошая у дума. Я еще на патроны не смотрел правда, а зря. Но на хп там видно, что есть готовый оффсет в принципе на максимальное количество хп, количетсво брони и тд. У мобов тоже.
    Можно было еще one shot kill написать, но… лень, ага :-)

    З.Ы. Я то еще думал, что из-за MOVSS придется через одно место помещать значение в xmm0, типа как с FPU, с его этими fld, fstp. Но нет, просто (float) и movss на mov заменить. Easy.


    _________________
    Den aller yngste greven, som der på skipet var, han ville visst trolova sig, enn sjølv så ung han var…
    DCS, X-Plane 11 player =3

    Последний раз редактировалось Bl00dRedDragon 15.05.2016 10:27, всего редактировалось 2 раз(а).

     
    observer_07

    Member

    Статус: Не в сети
    Регистрация: 26.05.2010
    Откуда: Александров
    Фото: 7

    Bl00dRedDragon, немного не в тему, а что за боковую панель с гаджетами вы используете?

     
    Bl00dRedDragon

    Куратор темы

    Статус: Не в сети
    Регистрация: 04.12.2009
    Откуда: Москва
    Фото: 13

    Думаю, когда нибудь у меня будет время снять туториалы по этой проге. Хотя по сути все это уже снято и не один раз, многими людьми.
    И, если кто заинтересован — я лично очень многое для себя с офф форума подчеркиваю. Т.е. там люди вполне помогают даже самым зеленым. Я например так хоть с fpu смог разобраться, да и AOB (Array Of Bytes) научится более-менее.
    Хотя мое знание этого всего еще сильно хромает. Есть очень много более разбирающихся людей в этом плане, чем я. Учиться тут можно чуть ли не до бесконечности, было бы время и желание только =)

    observer_07 rainmeter с темой enigma.


    _________________
    Den aller yngste greven, som der på skipet var, han ville visst trolova sig, enn sjølv så ung han var…
    DCS, X-Plane 11 player =3

     
    Bl00dRedDragon

    Куратор темы

    Статус: Не в сети
    Регистрация: 04.12.2009
    Откуда: Москва
    Фото: 13

    Еще хочу вам посоветовать один ютуб канал про обучение Cheat engine с азов и выше

    https://www.youtube.com/playlist?list=P … xv2m6mrmHr

    Туториалы оч хорошие, разжёванные. Материал в 1080p60fps-1440p. Туториалы английские, но человек очень хорошо и ясно все выговаривает и англ хороший очень, приятно слушать (ну как по мне).

    Некоторые моменты вот у него сейчас смотрю, про xmm как раз и прочее — крайне интересная информация. :-)


    _________________
    Den aller yngste greven, som der på skipet var, han ville visst trolova sig, enn sjølv så ung han var…
    DCS, X-Plane 11 player =3

    Кто сейчас на конференции

    Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    Вы не можете начинать темы
    Вы не можете отвечать на сообщения
    Вы не можете редактировать свои сообщения
    Вы не можете удалять свои сообщения
    Вы не можете добавлять вложения

    Лаборатория

    Новости

    • Home
    • Forum
    • MultiPlayer Game Hacks & Cheats
    • Call of Duty Hacks & Cheats
    • Call of Duty 13 — Infinite Warfare
    • [Tutorial] Simple Tutorial How To Use Cheat Engine and Offsets [Updated Offsets 9/28]

    1. Welcome to MPGH — MultiPlayer Game Hacking, the world’s leader in Game Hacks, Game Cheats, Trainers, Combat Arms Hacks & Cheats, Crossfire Hacks & Cheats, WarRock Hacks & Cheats, SoldierFront Hacks & Cheats, Project Blackout Hacks & Cheats, Operation 7 Hacks & Cheats, Blackshot Hacks & Cheats, A.V.A. Hacks & Cheats, Call of Duty Hacks & Cheats, Gunz Hacks & Cheats, Quake LIVE Hacks & Cheats, WolfTeam Hacks & Cheats, America’s Army Hacks & Cheats, Battlefield 2/2142 Hacks & Cheats, Battlefield Heroes Hacks & Cheats, Battlefield Bad Company 2 (BC2) Hacks & Cheats, Battlefield 3 (BF3) Hacks & Cheats, Maplestory Hacks & Cheats, Diablo 3 Hacks & Cheats, Starcraft 2 Hacks & Cheats, Heroes of Newerth Hacks & Cheats, Call of Duty Hacks & Cheats, Call of Duty 4 Hacks & Cheats, Modern Warfare Hacks & Cheats, Modern Warfare 2 Hacks & Cheats, Call of Duty Modern Warfare 3 Hacks & Cheats, Project Blackout Hacks & Cheats, Runescape Hacks & Bots, Minecraft Hacks & Mods, MAT Hacks & Cheats, All Points Bulletin Hacks & Cheats, Vindictus Hacks & Cheats, Dragon Nest Hacks & Cheats, DayZ Hacks & Cheats, WarZ Hacks & Cheats, Arctic Combat Hacks & Cheats, Black OPS 2 Hacks & Cheats, BlackLight Retribution Hacks & Cheats, Bullet Run Hacks & Cheats, All Points Bulletin Hacks & Cheats, Arctic Combat Hacks & Cheats, Warframe Hacks & Cheats, Crysis 3 Hacks & Cheats, Warface Hacks & Cheats, Realm of the Mad God Hacks & Cheats, War Thunder Hacks & Cheats, Call of Duty Ghosts Hacks & Cheats, Battlefield 4 Hacks & Cheats and cheats and trainers for many other multiplayer games.

      With several hundred thousand FREE hacks, cheats and bots, over 4 million members strong, a free and open marketplace and a great community, what else is there to ask for?

      REGISTER now for full benefits of our site, it’s completely FREE to join:

      • Access to our large gaming community with millions of discussions to participate in.
      • Free access to tutorials, resources, information, tools, trainers, cheats and hacks.
      • Interact with our great community, and make new friends with our members.
      • Active marketplace for gamers and people like you, with thousands of contributors and over half a million posts.
      • Let your voice be heard! You can post, reply, and share whatever is on your mind.
      • Ads are removed, almost completely ad free browsing.

      If you are having any issues, shoot us an email, Contact MPGH Support.

      As always, have fun and enjoy your stay!

      — MPGH Staff

    1. 09-28-2017


      #1

      Simple Tutorial How To Use Cheat Engine and Offsets [Updated Offsets 9/28]

      Hi guys, since a lot of people don’t know how to use cheat engine I decided to make a simple video tut, I hope that will help new users. If you have more question, just ask.

      Here the list of updated offsets :

      Multi
      XP : 145EC2F0F (4 Bytes)
      Prestige : 145EC2F13 (1 Byte)
      Wins : 145EC278D (4 Bytes)
      Losses : 145EC40A4 (4 Bytes)
      Kills : 145EC29B9 (4 Bytes)
      Deaths : 145EC408C (4 Bytes)
      TimePlayed : 145EC3919 (4 Bytes)
      Mission Teams Level & XP (all 4 bytes)
      Wolverines Level : 145EC4CB5
      Wolverines XP : 145EC4CB9
      Orion Level : 145EC4CD3
      Orion XP : 145EC4CD7
      Sabre Level : 145EC4CF1
      Sabre XP : 145EC4CF5
      Wraith Level : 145EC4D0F
      Wraith XP : 145EC4D13
      Blood Anvil Level : 145EC4D2D
      Blood Anvil XP : 145EC4D31
      Weapons camo start at : 145EC343E, end 145EC37CD
      Rig camo start at : 145EC385B, end 145EC390B
      open memory view, then between start and end address just write C8 C8 C8 C8 ……….

      Zombie
      XP : 145EC96DC (4 Bytes)
      Money : 25E4BEE4E (4 Bytes)
      GodMode : 143D217E0 (4 Bytes) change to 99999 and lock it
      Timescale : 146004D94 (FLOAT) default should be 1, change value to 5-6 will make the game super fast.
      UFO : 143CA5AE4 (1 Byte) Enable = value 2, Disable = value 0
      Ammo : 143CA1AB0, 143CA1AB4, 143CA1AF8, 143CA1AFC (4 Bytes)
      Nade : 143CA1AD4 (change value to 4 and lock it)
      Zombie Stats:
      Kills : 145EC9F12 (4 Bytes)
      Headshot : 145EC9F2E (4 Bytes)
      Downs : 145EC9F0E (4 Bytes)
      Highest Scene : 145EC9F2A (4 Bytes)
      Scenes Survived : 145EC9F26 (4 Bytes)
      Perks Used : 145EC9F5A (4 Bytes)
      Doors Opened : 145EC9F3A (4 Bytes)
      Games Played : 145EC9F56 (4 Bytes)
      Time Played : 145EC9F52 (4 Bytes)

      Last edited by ZeubyX; 09-28-2017 at 12:49 PM.


    2. The Following 13 Users Say Thank You to ZeubyX For This Useful Post:

      BeatOffandDDoS (10-05-2017),bloopme (09-28-2017),cenzo (09-28-2017),id1573 (09-28-2017),LBP1906 (09-30-2017),MagnetMan (10-02-2017),pattyboy27 (11-13-2018),ptvespa (05-08-2019),roadrash (09-29-2017),StaindHart (09-29-2017),Steezeballl (09-28-2017),twiztiddreamz (09-28-2017),Xforcengod (09-29-2017)


    3. 09-28-2017


      #2

      Thanks for the tutorial and the offsets. Everything works fine except the Money for zombies. When I enter 25E4BEE4E the value doesn’t show the current amount in game. Instead it shows ??? for the value and it doesn’t allow it to be changed. Am I doing something wrong or did they update the offset for the Money Cheat?


    4. 09-28-2017


      #3

      ZeubyX is offline

      Threadstarter

      Dual-Keyboard Member

      MPGH Member

      ZeubyX's Avatar


      Send a message via Birdie™ to ZeubyX

      France

      Quote Originally Posted by twiztiddreamz
      View Post

      Thanks for the tutorial and the offsets. Everything works fine except the Money for zombies. When I enter 25E4BEE4E the value doesn’t show the current amount in game. Instead it shows ??? for the value and it doesn’t allow it to be changed. Am I doing something wrong or did they update the offset for the Money Cheat?

      in rare case (like you) offset money is not the same as the rest. I can get you address with teamviewer if you want just PM.


    5. 09-28-2017


      #4

      Thanks for tutorial, I noticed that your Cheat Engine named «Love», is that how you avoid getting banned?


    6. 09-28-2017


      #5


    7. 09-28-2017


      #6

      ZeubyX is offline

      Threadstarter

      Dual-Keyboard Member

      MPGH Member

      ZeubyX's Avatar


      Send a message via Birdie™ to ZeubyX

      France

      Quote Originally Posted by E3N
      View Post

      Thanks for tutorial, I noticed that your Cheat Engine named «Love», is that how you avoid getting banned?

      Its because im using this version https://www.mpgh.net/forum/showthread.php?t=1293934


    8. 09-28-2017


      #7


    9. 09-28-2017


      #8

      ZeubyX is offline

      Threadstarter

      Dual-Keyboard Member

      MPGH Member

      ZeubyX's Avatar


      Send a message via Birdie™ to ZeubyX

      France

      Quote Originally Posted by GhostIW
      View Post

      Where timescale???

      Timescale : 146004D94 (FLOAT) default should be 1, change value to 5-6 will make the game super fast.


    10. 09-28-2017


      #9

      games been updated bud just saying again


    11. 09-28-2017


      #10

      ZeubyX is offline

      Threadstarter

      Dual-Keyboard Member

      MPGH Member

      ZeubyX's Avatar


      Send a message via Birdie™ to ZeubyX

      France

      Quote Originally Posted by Xiov1
      View Post

      games been updated bud just saying again

      and offset is not working anymore ?


    12. 09-28-2017


      #11

      i dont know ive jumped on and it gave me a update , and i didnt ehone for the other ones before and they worked


    13. 09-29-2017


      #12

      Cheers for this, looking forward to trying out a few bits when I get home from work.

      I did try to guess my way around Cheat Engine the other day without any guide or walkthrough when the offsets were out of date.
      As I’d never done it before I figured I’d try to find the points offset as ammo had already been provided. So I shot a few zombies so the number wasn’t as rounded and did a scan for it. I then spent some points and did a search for the new number. Eventually I found 4 offsets that seemed to match. Changing them individually didn’t work, nor did changing them all at once. Also, one of them would revert back to it’s original number the moment I entered it.

      Is there something I’m mising or doing fundamentally wrong? Like I said, this was all guess work. I’m not asking for you to teach me the whole process of how to do it myself, I just want to know if I’m close to figuring it out.


    14. 09-29-2017


      #13

      Quote Originally Posted by StaindHart
      View Post

      Cheers for this, looking forward to trying out a few bits when I get home from work.

      I did try to guess my way around Cheat Engine the other day without any guide or walkthrough when the offsets were out of date.
      As I’d never done it before I figured I’d try to find the points offset as ammo had already been provided. So I shot a few zombies so the number wasn’t as rounded and did a scan for it. I then spent some points and did a search for the new number. Eventually I found 4 offsets that seemed to match. Changing them individually didn’t work, nor did changing them all at once. Also, one of them would revert back to it’s original number the moment I entered it.

      Is there something I’m mising or doing fundamentally wrong? Like I said, this was all guess work. I’m not asking for you to teach me the whole process of how to do it myself, I just want to know if I’m close to figuring it out.

      I experienced the same thing when looking for the money addresses. Could anybody clue me in on the proper way to find the money one? Because clearly I have the wrong ones.


    15. 09-30-2017


      #14

      Is there an easier way to do the weapon camos? I did the rigs and its working fine but for the camos its a lot more to do.


    16. 10-02-2017


      #15

      Off topic here, ZeubyX, by any chance you will update the MWR offset?
      All I need is XP


    Similar Threads

    1. Replies: 11

      Last Post: 06-21-2012, 07:05 AM

    2. Replies: 11

      Last Post: 06-18-2011, 02:28 PM

    3. Replies: 2

      Last Post: 01-18-2010, 09:51 PM

    4. Replies: 2

      Last Post: 12-20-2009, 08:37 PM

    5. Replies: 0

      Last Post: 12-23-2008, 03:22 AM

    Понравилась статья? Поделить с друзьями:

    Не пропустите также:

  • Как найти нужный клинок
  • Как можно исправить форму губ
  • Как исправить как исправишься
  • Как найти запись спектакля
  • Как правильно составить опись имущества при сдаче квартиры в аренду образец

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии