ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Open-source чит для "Сапера"
  #1  
Старый 22.04.2010, 20:58
ntldr
Постоянный
Регистрация: 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.
 
Ответить с цитированием

  #2  
Старый 23.04.2010, 15:57
=Zeus=
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме:
724939

Репутация: 108
Отправить сообщение для =Zeus= с помощью ICQ
По умолчанию

Ха-ха )) Забавно. Все работает на ура.
А почему массив мин [27]на[32] ?

Откуда вообще такая идея с сапером?

Последний раз редактировалось =Zeus=; 23.04.2010 в 16:04..
 
Ответить с цитированием

  #3  
Старый 23.04.2010, 16:18
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Цитата:
Сообщение от =Zeus=  
Ха-ха )) Забавно. Все работает на ура.
А почему массив мин [27]на[32] ?

Откуда вообще такая идея с сапером?
Ну массив я определил через отладчик особенности заполнения. А идея возникла от нечего делать
 
Ответить с цитированием

  #4  
Старый 23.04.2010, 16:20
naqnaq
Познающий
Регистрация: 21.10.2006
Сообщений: 62
Провел на форуме:
346258

Репутация: 22
По умолчанию

здорово
...на очереди пасьянс Косынка
 
Ответить с цитированием

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

Репутация: 0
По умолчанию

Пойдет
 
Ответить с цитированием

  #6  
Старый 23.04.2010, 19:12
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме:
709575

Репутация: 17
По умолчанию

Как узнал адреса не раскрытых мин?
 
Ответить с цитированием

  #7  
Старый 23.04.2010, 19:43
gisTy
Постоянный
Регистрация: 24.05.2008
Сообщений: 589
Провел на форуме:
3629857

Репутация: 504


По умолчанию

Цитата:
Как узнал адреса не раскрытых мин?
я думаю сдампил память и посмотрел что да как там
 
Ответить с цитированием

  #8  
Старый 23.04.2010, 20:32
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме:
709575

Репутация: 17
По умолчанию

Цитата:
Сообщение от gisTy  
я думаю сдампил память и посмотрел что да как там
это да
Вот только как?
 
Ответить с цитированием

  #9  
Старый 23.04.2010, 20:36
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

olly debugger
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание сети: обжимка проводов petrovich-lamer Windows 13 02.07.2007 13:18
Взлом Unix а silveran *nix 4 21.12.2005 22:46
Основные команды командной строчки. silveran Windows 5 27.10.2005 14:45



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ