ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
Open-source чит для "Сапера" |

22.04.2010, 20:58
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
Open-source чит для "Сапера"
PHP код:
#include <windows.h>
#include <conio.h>
#include <stdio.h>
#define STRUCT_BASE 0x1005330 //VA структуры в процессе сапера, в разных билдах винды может быть по разному.
#define OBJECT_NONE 0x0F //Разные объекты на минном поле
#define OBJECT_BORDER 0x10 //граница поля
#define OBJECT_OPEN 0x40 //открытая пустая клетка
#define OBJECT_MINE_E 0x8A //Раскрытая мина
#define OBJECT_MINE 0x8F //Скрытая мина
typedef struct _MINEINFO { //Структура данных о минном поле
DWORD numOfMines; //кол-во мин
DWORD width; //Ширина поля
DWORD height; //Высота поля
DWORD reserved; // :confused:
BYTE field[27][32]; //Массив мин
} MINEINFO,*PMINEINFO;
int main()
{
DWORD pid,buf,op;
DWORD addr = STRUCT_BASE;
GetWindowThreadProcessId(FindWindow(NULL,"Сапер"),&pid); //Определяем PID по хендлу окна сапера
HANDLE hproc = OpenProcess(PROCESS_VM_READ,NULL,pid); //Открываем процесс на чтение
if(!hproc)
{
printf("Can't open process %d! Error %d!",pid,GetLastError());
_getch();
return -1;
}
PMINEINFO localfield;
localfield=(PMINEINFO)malloc(sizeof(MINEINFO)); //динамически выделяем память под массив. Можно было и статически, но я поздно это понял и решил не переделывать
ReadProcessMemory(hproc,(LPCVOID)addr,localfield,sizeof(MINEINFO),&buf); //Копируем структуру к себе
int counter = 0; //Счетчик смещения в массиве
for(int j=0;j<localfield->height+2;j++)//цикл рисует минное поле в консоли
{
for(int i=0;i<localfield->width+2;i++)
{
switch(localfield->field[j][i])
{
case OBJECT_OPEN:printf("-");break;
case OBJECT_NONE:printf("-");break;
case OBJECT_BORDER:printf("0");break;
case OBJECT_MINE:printf("*");break;
case OBJECT_MINE_E:printf("X");break;
default:if((localfield->field[j][i] & 0x40) == 0x40)//Если не объект минного поля и взведен 0х40, значит это цифра.
printf("%d",localfield->field[j][i]&0x3f);
else
printf("?",localfield->field[j][i]); //Мало ли что
break;
}
//printf(" %.2X ",localfield->field[j][i]);
counter++;
}
printf("\r\n");
}
_getch();
return 0;
}
Соответственно при запущенном сапере запустить чит, выведет положение всех мин, и других объектов, может быть кому-то пригодится.
http://dl.dropbox.com/u/3104173/pwnmine.rar - проект VS2008
http://dl.dropbox.com/u/3104173/pwnmine.exe - бинарник
Код под ANSI.
|
|
|

23.04.2010, 15:57
|
|
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме: 724939
Репутация:
108
|
|
Ха-ха )) Забавно. Все работает на ура.
А почему массив мин [27]на[32] ?
Откуда вообще такая идея с сапером? 
Последний раз редактировалось =Zeus=; 23.04.2010 в 16:04..
|
|
|

23.04.2010, 16:18
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
Сообщение от =Zeus=
Ха-ха )) Забавно. Все работает на ура.
А почему массив мин [27]на[32] ?
Откуда вообще такая идея с сапером? 
Ну массив я определил через отладчик особенности заполнения. А идея возникла от нечего делать
|
|
|

23.04.2010, 16:20
|
|
Познающий
Регистрация: 21.10.2006
Сообщений: 62
Провел на форуме: 346258
Репутация:
22
|
|
здорово
...на очереди пасьянс Косынка 
|
|
|

23.04.2010, 17:16
|
|
Познающий
Регистрация: 17.04.2010
Сообщений: 38
Провел на форуме: 28500
Репутация:
0
|
|
Пойдет
|
|
|

23.04.2010, 19:12
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме: 709575
Репутация:
17
|
|
Как узнал адреса не раскрытых мин?
|
|
|

23.04.2010, 19:43
|
|
Постоянный
Регистрация: 24.05.2008
Сообщений: 589
Провел на форуме: 3629857
Репутация:
504
|
|
Как узнал адреса не раскрытых мин?
я думаю сдампил память и посмотрел что да как там
|
|
|

23.04.2010, 20:32
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме: 709575
Репутация:
17
|
|
Сообщение от gisTy
я думаю сдампил память и посмотрел что да как там
 это да
Вот только как?
|
|
|

23.04.2010, 20:36
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
olly debugger
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|