Сейчас на форуме: Slinger (+6 невидимых) |
![]() |
eXeL@B —› Основной форум —› поиск бессмертия в ConterStrike |
Посл.ответ | Сообщение |
|
Создано: 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 дампами. То есть я должен получить смешения тех байтов, которые отвечают за жизни. Я получаю четыре таких смещения. И софтайсом меняю все эти значения прямо в игре, визуально жизни увеличиваются. НО когда я падаю или в меня стреляют то у меня становится, кол-во жизней которое было до изменения этих байтов минус урон, который мне пренесли. Короче, в игре меняются только циферки, которые показывают кол-во жизней, а не сами жизни. Получается, что все эти четыре байта всего лишь тени. Вопрос: как же отыскать тот байт, который мне так нужен? По какому закону ещё может изменяться значение этих жизней? ![]() |
|
Создано: 12 мая 2006 14:46 · Личное сообщение · #2 |
|
Создано: 12 мая 2006 15:28 · Личное сообщение · #3 |
|
Создано: 12 мая 2006 15:37 · Личное сообщение · #4 |
|
Создано: 12 мая 2006 15:52 · Личное сообщение · #5 |
|
Создано: 12 мая 2006 17:25 · Личное сообщение · #6 |
|
Создано: 12 мая 2006 20:16 · Личное сообщение · #7 |
|
Создано: 12 мая 2006 22:06 · Личное сообщение · #8 Все правильно, ты просто нашел переменную, отвечающую за визуализацию хелсов. Причем в клиентском модуле. ![]() ![]() Ну а если хочешь в инете делать тоже самое, то всего-то делов сервак похакать, да длл туда залить. ![]() П.С. Какая версия КС-то хоть? ![]() |
|
Создано: 12 мая 2006 23:08 · Личное сообщение · #9 |
|
Создано: 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 ![]() |
|
Создано: 13 мая 2006 16:31 · Личное сообщение · #11 |
|
Создано: 13 мая 2006 16:33 · Личное сообщение · #12 |
|
Создано: 13 мая 2006 17:46 · Личное сообщение · #13 |
|
Создано: 13 мая 2006 20:21 · Личное сообщение · #14 L1VE пишет: читинг в играх интересен главным образом со стороны кодинга ![]() ![]() |
|
Создано: 13 мая 2006 21:09 · Личное сообщение · #15 |
|
Создано: 10 февраля 2007 10:25 · Личное сообщение · #16 |
|
Создано: 10 февраля 2007 11:10 · Личное сообщение · #17 |
|
Создано: 10 февраля 2007 14:37 · Личное сообщение · #18 |
|
Создано: 10 февраля 2007 15:38 · Личное сообщение · #19 Viktor пишет: Взломать жизни в КС можно только одним способом. Во-первых Нужно быть серваком. Во-вторых Нужно поставить AmxMod(MetaMod) и для него скачать(написать) пл Ой как мы заблуждаемсо. 1) Онлай игра WOW вроде все хранится на серваке но читеры то есть, а почему? а потаму что нашли бырку в протаколе и когда ставим трейнер вместа голимого лука можем купить максимальное оружие. 2) Что косается контры таже ситуация, так как на моей памяти побывало только 4 версии утилы CheatDeath (тоесть утила которая отсеивала из дырявого протаколы читы и давала играть нормально) а без проги играть было не реально одни хэдшоты. Сразу ясно что читеры работали также быстро как и античитеры (не исключено что это были одни и теже люди, так как деньги получалибы двойные :s12 ![]() 3) Даже в Lineage II существуют читерские утылы, но т.к. игра в принцыпе щитается комерческой и в ней можна заработать не кисло бабок, эти утилы тоже не бесплатные ![]() ![]() |
|
Создано: 10 февраля 2007 17:02 · Личное сообщение · #20 |
|
Создано: 10 февраля 2007 21:33 · Личное сообщение · #21 Фу, что за тема в ОФФТОП её а лучше закрыть/удалить!! Какое ещё там бесмертие, читеры блин надоели! У нас в локалке просто играть не возможно, наставят читов бл*ть, а потом начинают смаковать типа: вот видешь я даже и не стараюсь особо, а так я крутой в КС. Не уважаю читеров! Настоящий мужик так играет без мухлежа!!!!!!!! 14 летних читеров бл* развелось нах. ----- Никто не знает столько, сколько не знаю я ![]() |
|
Создано: 10 февраля 2007 23:03 · Личное сообщение · #22 |
|
Создано: 10 февраля 2007 23:41 · Личное сообщение · #23 |
|
Создано: 11 февраля 2007 00:18 · Личное сообщение · #24 |
![]() |
eXeL@B —› Основной форум —› поиск бессмертия в ConterStrike |
Эта тема закрыта. Ответы больше не принимаются. |