Сейчас на форуме: Slinger (+6 невидимых)

 eXeL@B —› Основной форум —› поиск бессмертия в ConterStrike
Посл.ответ Сообщение

Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 12 мая 2006 14:29
· Личное сообщение · #1

Привет, я прочитал статью Мыщъх-а «вечная жизнь в играх своими руками» ну и решил проделать проделанное, только не на Doom legacy, а на ConterStrike. Кто не читал статью расскажу, что там делается. Правда, боюсь, коротко не получиться.
Я собираюсь увеличить жизни. Включаю игру. Делаю дамп памяти игры с определенным количеством жизней, потом бегаю стреляю, но жизни не теряю. Делаю еще один дапм памяти. Потом теряю некоторое количество жизней и делаю еще один дамп. Потом еще теряю еще чуть-чуть жизней и делаю четвертый дамп памяти.
В итоге у меня получается 4 дампа. Два дампа с одинаковым количеством жизней и два с другим кол-вом жизней. Далее мне нужно анализировать полученные дампы. То есть я побайтово ищу значения, которые совпадают в первых двух дампах, но отличаются от них в следующих двух. Так я сокращаю работу над поиском нужных значений. Мыщъх написал для этой цели проргамму. Вот её код:

[code]
/*-------------------------------------------------------------------- --------
*
* сравниватель дампов
* ===================
* usage:
* fck.exe dump_1 dump_2 dump_3 ... dump_n
*
* sense:
* сравниватель сравнивает дампы и печатает ячейки, которые совпадают
* в dump_1 и dump_2, но не совпадают во всех остальных
---------------------------------------------------------------------- ------*/
#include <stdio.h>

#define MAX_DUMPS 0x10 // макс. кол-во поддержиаемых дампов
main(int c, char **v)
{
int pos=0;
int a,b,flag;
FILE* f[MAX_DUMPS];
unsigned char ch[MAX_DUMPS];

// проверка аргументов
if (c-- < 4) return printf("-err: need more files\n");

// открываем все файлы
for (a=0;a<c;a++)
if (!(f[a]=fopen(v[a+1],"rb"))) return printf("-err: cant open %s\n",v[a+1]);

// печать имен файлов
printf("raw offset");for (a=1;a<c;a++) printf("\t%s",v[a+1]);

while(1)
{
// чтение очередной ячейки из каждого файла
for(a=0;a<c;a++) if (!fread(&ch[a],1,1,f[a])) return 0; pos++;

// если ячейки двух первых дампов совпадают они отбрасываются
if (ch[0] - ch[1]) continue;

// поиск совпадающих ячеек во втором и всех последущих дампах
// (такие ячеки отбрасываются как "левые" и на фиг не нужные)
for(a=flag=1;a<c;a++) for(b=a;b<c;b++) if ((a-b) && (ch[a]==ch[b])) flag=0;

// печать "правильных" ячеек
if (flag) for (printf("\n%08Xh:",pos-1),a=1;a<c;a++) printf("\t%02Xh",ch[a]);
} printf("\n");

}

[/code]

Она просто выводит нужные мне значения, а я уже их анализирую. Чтобы сократить поиск я добавляю в эту программу две строчки своего кода, которые ищут разницу между значениями жизней 2,3 и 4 дампов. Ведь сколько же жизней у меня было перед каждым дампом я знаю. Вот, что получается:

[code]
/*-------------------------------------------------------------------- --------
*
* сравниватель дампов
* ===================
* usage:
* fck.exe dump_1 dump_2 dump_3 ... dump_n
*
* sense:
* сравниватель сравнивает дампы и печатает ячейки, которые совпадают
* в dump_1 и dump_2, но не совпадают во всех остальных
---------------------------------------------------------------------- ------*/
#include <stdio.h>

#define MAX_DUMPS 0x10 // макс. кол-во поддержиаемых дампов
main(int c, char **v)
{
int pos=0;
int a,b,flag;
FILE* f[MAX_DUMPS];
unsigned char ch[MAX_DUMPS];

// проверка аргументов
if (c-- < 4) return printf("-err: need more files\n");

// открываем все файлы
for (a=0;a<c;a++)
if (!(f[a]=fopen(v[a+1],"rb"))) return printf("-err: cant open %s\n",v[a+1]);

// печать имен файлов
printf("raw offset");for (a=1;a<c;a++) printf("\t%s",v[a+1]);

while(1)
{
// чтение очередной ячейки из каждого файла
for(a=0;a<c;a++) if (!fread(&ch[a],1,1,f[a])) return 0; pos++;

// если ячейки двух первых дампов совпадают они отбрасываются
if (ch[0] - ch[1]) continue;
if ((ch[1]-ch[2])!=13) continue;
if ((ch[2]-ch[3])!=14) continue;

// поиск совпадающих ячеек во втором и всех последущих дампах
// (такие ячеки отбрасываются как "левые" и на фиг не нужные)
for(a=flag=1;a<c;a++) for(b=a;b<c;b++) if ((a-b) && (ch[a]==ch[b])) flag=0;

// печать "правильных" ячеек
if (flag) for (printf("\n%08Xh:",pos-1),a=1;a<c;a++) printf("\t%02Xh",ch[a]);
} printf("\n");

}

[/code]

мои две строчки кода идут после вот этой if (ch[0] - ch[1]) continue;
13 и 14 это разницы между жизнями между 2 и 3, 3 и 4 дампами. То есть я должен получить смешения тех байтов, которые отвечают за жизни. Я получаю четыре таких смещения. И софтайсом меняю все эти значения прямо в игре, визуально жизни увеличиваются. НО когда я падаю или в меня стреляют то у меня становится, кол-во жизней которое было до изменения этих байтов минус урон, который мне пренесли. Короче, в игре меняются только циферки, которые показывают кол-во жизней, а не сами жизни. Получается, что все эти четыре байта всего лишь тени.

Вопрос: как же отыскать тот байт, который мне так нужен? По какому закону ещё может изменяться значение этих жизней?



Ранг: 253.9 (наставник)
Активность: 0.130
Статус: Участник

Создано: 12 мая 2006 14:46
· Личное сообщение · #2

Во-первых, для этого есть программа ArtMoney.
Во-вторых, Counter-Strike это online игра, в которой многие переменные хранятся на сервере. Так что патчить нужно память сервера.

P.S. Вопрос явно не по теме...

-----
MicroSoft? Is it some kind of a toilet paper?




Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 12 мая 2006 15:28
· Личное сообщение · #3

ок, а как можно добраться до переменных, которые хранятся на сервере? Как узнать где храниться память сервера и сделать ее дамп?



Ранг: 34.6 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 12 мая 2006 15:37
· Личное сообщение · #4

память сервера хранится на сервере!!! что тут не понятного...




Ранг: 66.7 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 12 мая 2006 15:52
· Личное сообщение · #5

хм... Мне кажется, вы допустили одну ошибку: те, у кого есть counter strike знают, что можно создавать и самому серв, а не тока коннектиться к выделенному, что означает что он может найти эти переменные в КС, которая у него. Или может я вас не так понял?




Ранг: 78.6 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 12 мая 2006 17:25
· Личное сообщение · #6

je0n
ну предположим что для этих переменных программа каждый раз выделяет память, вследствии чего адреса этих переменных могут отличаться и то что ты делал снятия дампов с программы и сканил на различие уже нечего могут недать




Ранг: 103.3 (ветеран), 8thx
Активность: 0.060
Статус: Участник

Создано: 12 мая 2006 20:16
· Личное сообщение · #7

вот с такими читерскими подонками всю жизнь и борешься... грустно это, парни.



Ранг: 62.9 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 12 мая 2006 22:06
· Личное сообщение · #8

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

Ну а если хочешь в инете делать тоже самое, то всего-то делов сервак похакать, да длл туда залить.

П.С. Какая версия КС-то хоть?



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 12 мая 2006 23:08
· Личное сообщение · #9

1.6 возможно



Ранг: 172.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 13 мая 2006 15:45
· Личное сообщение · #10

На версии 1.3-1.5 практиковал такие же веЩи, которые можно было изменять вплось до обы4ного артмани, но с 23 пат4а КС версии 1.6 кроме дефолтного сетевого Valve antichit (и дублирования переменных, хранящих гелсы\армор\боеприпасы) в игре предустановлен модуль по отлову инжекта кода в серверный процесс.

Если тебе банально нужен работающий 4ит (либо изу4ить работу анти4ита), то тебе сюда: www.cs-hacked.com/

-----
HOW MUCH BLOOD WOULD YOU SHED TO STAY ALIVE





Ранг: 103.3 (ветеран), 8thx
Активность: 0.060
Статус: Участник

Создано: 13 мая 2006 16:31
· Личное сообщение · #11

простите, но думаю что по теме =)
что вы находите в читерстве? какой кайф от этого? многие, я понимаю, ломают из интереса и бросают, но на хрена помогать читерам? ) варез одно, читы другое даешь бой читерам!



Ранг: 46.5 (посетитель)
Активность: 0.070
Статус: Участник

Создано: 13 мая 2006 16:33
· Личное сообщение · #12

NaumLeNet пишет:
что вы находите в читерстве? какой кайф от этого? многие, я понимаю, ломают из интереса и бросают, но на хрена помогать читерам? ) варез одно, читы другое даешь бой читерам!

Поддерживаю читерство и кряк это разные вещи. Не фига тут устраивать читер клуб.



Ранг: 21.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 13 мая 2006 17:46
· Личное сообщение · #13

Думаю многим, как и мне взлом - читинг в играх интересен главным образом со стороны кодинга. Несомненно читы в руках ламера - зло, но на то и есть приватные хаки




Ранг: 103.3 (ветеран), 8thx
Активность: 0.060
Статус: Участник

Создано: 13 мая 2006 20:21
· Личное сообщение · #14

L1VE пишет:
читинг в играх интересен главным образом со стороны кодинга


кодинг он и в африке кодинг, уж не обижайтесь, пожалуйста ) почему бы не взять к примеру за анти-читы? ) принципы те же, зато интереснее и полезнее. вы уж простите за флуд и флейм, который я тут волею судеб завел. просто для меня этот вопрос важен. я вечерами, уставший после рабочего дня, люблю порубиться в свой любимый CS 1.6 по сети. и люблю когда меня окружают игроки, а не муд*ки...



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 мая 2006 21:09
· Личное сообщение · #15

Взломать жизни в КС можно только одним способом.
Во-первых Нужно быть серваком.
Во-вторых Нужно поставить AmxMod(MetaMod) и для него скачать(написать) плагин.



Ранг: 4.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 февраля 2007 10:25
· Личное сообщение · #16

Во-третьих есть прога WPE PRO, которая перехватывает пакеты.
давать ссылку не буду- ищите в гугле сами.




Ранг: 282.8 (наставник), 24thx
Активность: 0.260
Статус: Участник
win32.org.ru

Создано: 10 февраля 2007 11:10
· Личное сообщение · #17

je0n пишет:
прочитал статью Мыщъх-а «вечная жизнь в играх своими руками»

не в тему, но дайте линку на статью

-----
may all your PUSHes be POPed!





Ранг: 107.6 (ветеран)
Активность: 0.110
Статус: Участник

Создано: 10 февраля 2007 14:37
· Личное сообщение · #18

artobstrel95 пишет:
Во-третьих есть прога WPE PRO, которая перехватывает пакеты.
давать ссылку не буду- ищите в гугле сами.

На дату посмотри (это ведь надо было постараться откопать )

-----
программистом не рождаются - им умирают




Ранг: 74.4 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 10 февраля 2007 15:38
· Личное сообщение · #19

Viktor пишет:
Взломать жизни в КС можно только одним способом.
Во-первых Нужно быть серваком.
Во-вторых Нужно поставить AmxMod(MetaMod) и для него скачать(написать) пл

Ой как мы заблуждаемсо.
1) Онлай игра WOW вроде все хранится на серваке но читеры то есть, а почему? а потаму что нашли бырку в протаколе и когда ставим трейнер вместа голимого лука можем купить максимальное оружие.
2) Что косается контры таже ситуация, так как на моей памяти побывало только 4 версии утилы CheatDeath (тоесть утила которая отсеивала из дырявого протаколы читы и давала играть нормально) а без проги играть было не реально одни хэдшоты. Сразу ясно что читеры работали также быстро как и античитеры (не исключено что это были одни и теже люди, так как деньги получалибы двойные :s12
3) Даже в Lineage II существуют читерские утылы, но т.к. игра в принцыпе щитается комерческой и в ней можна заработать не кисло бабок, эти утилы тоже не бесплатные



Ранг: 214.1 (наставник)
Активность: 0.130
Статус: Участник

Создано: 10 февраля 2007 17:02
· Личное сообщение · #20

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




Ранг: 110.0 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 10 февраля 2007 21:33
· Личное сообщение · #21

Фу, что за тема в ОФФТОП её а лучше закрыть/удалить!!
Какое ещё там бесмертие, читеры блин надоели!
У нас в локалке просто играть не возможно, наставят читов бл*ть, а потом начинают смаковать типа: вот видешь я даже и не стараюсь особо, а так я крутой в КС.
Не уважаю читеров!
Настоящий мужик так играет без мухлежа!!!!!!!!
14 летних читеров бл* развелось нах.

-----
Никто не знает столько, сколько не знаю я





Ранг: 60.1 (постоянный)
Активность: 0.120
Статус: Участник

Создано: 10 февраля 2007 23:03
· Личное сообщение · #22

je0n, у тебя ничего не выйдет. Я пытался как-то раз такое сделать в ArtMony. С жизнями - не получилось => они лежат на серваке. Получилось тока на 1-н раунд с патронами. Как уже говорили КС - сетевая гама => ломать не имеет смысла.
З.Ы.: Убейте сибя ап стену, грёбаные читеры!




Ранг: 209.1 (наставник)
Активность: 0.130
Статус: Участник
программист априори

Создано: 10 февраля 2007 23:41
· Личное сообщение · #23

убить бы вас всех... засрали форум херней какой-то




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 11 февраля 2007 00:18
· Личное сообщение · #24

низачет за поднятие старого гавнотопа

-----
Тут не могла быть ваша реклама



 eXeL@B —› Основной форум —› поиск бессмертия в ConterStrike
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати