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

 eXeL@B —› Вопросы новичков —› Сапер
Посл.ответ Сообщение

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

Создано: 15 июля 2006 20:33
· Личное сообщение · #1

У меня такой вот вопрос: как сломать прогу сапер?
Там есть только одно окно класса "сапер", а к кнопкам доступа нет



Ранг: 123.7 (ветеран)
Активность: 0.10
Статус: Участник
1nn0$/100

Создано: 16 июля 2006 01:06
· Личное сообщение · #2

Obsession, а что ты там ломать собрался? Или речь про Сапер 2 (он же СуперСапер и т.д.)?

-----
Blame the victim!




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

Создано: 16 июля 2006 15:13
· Личное сообщение · #3

Не, сапер1. Тот, который еще на 98 виндах был.
Ну, вот хочу я например написать прогу антисапер (подрывник хе-хе),
чтоб она сама автоматически его проходила. Т.е. не заглядывала под кнопки, чтобы посмотреть, есть там бомба или нет, а по алгоритму. Ну, не важно.

Но к кнопкам не получается получить доступ,т.к. там spy++ различает только одно окно класса "Сапер" - общее.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 16 июля 2006 17:46
· Личное сообщение · #4

Obsession пишет:
Но к кнопкам не получается получить доступ

Значит там работают с координатами мышки и кнопок нет. Кстати, "кнопками" они стали лишь в 2000-м - до этого были просто квадратики.



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

Создано: 16 июля 2006 17:51
· Личное сообщение · #5

Просто квадратики. Хммм... Как-то странно это все.
Ладно, сейчас попробую че-нить сотворить.
А как же мне тогда цыферки считывать. Все попиксельно?

Ну ладно, все равно, спасибо большое за ответ.



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

Создано: 16 июля 2006 20:20
· Личное сообщение · #6

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



Ранг: 123.7 (ветеран)
Активность: 0.10
Статус: Участник
1nn0$/100

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

Так и пользуйся дальше WM_LBUTTONDOWN!
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // WM_LBUTTONDOWN
WPARAM wParam, // key indicator
LPARAM lParam // horizontal and vertical position
);

wParam
MK_LBUTTON The left mouse button is down.

lParam
The low-order word specifies the x-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area.
The high-order word specifies the y-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area.

MSDN рулит!

-----
Blame the victim!




Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 16 июля 2006 21:08
· Личное сообщение · #8

Obsession пишет:
А как же мне тогда цыферки считывать. Все попиксельно?

Прога выводит битмапы - см. ресурсы проги. Лови их вывод и анализируй.



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

Создано: 16 июля 2006 21:25 · Поправил: Obsession
· Личное сообщение · #9

А, спасибо!

MSDN рулит!
Если знаешь, что искать ;)

Прога выводит битмапы - см. ресурсы проги. Лови их вывод и анализируй.
Вот это я пока не умею, с ресурсами работать.
Что мне почитать?



Ранг: 123.7 (ветеран)
Активность: 0.10
Статус: Участник
1nn0$/100

Создано: 16 июля 2006 21:35 · Поправил: 1nn0cent
· Личное сообщение · #10

Obsession пишет:
Что мне почитать?

MSDN!

Ключевое слово LoadResource. Дальше сам.

-----
Blame the victim!




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

Создано: 16 июля 2006 21:42
· Личное сообщение · #11

Ключевое слово LoadResource. Дальше сам.
Большое спасибо! Все, пойду займусь



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

Создано: 19 июля 2006 20:59
· Личное сообщение · #12

Ты случайно статью на хакере не читал?Про написание антисапера?( www.xakep.ru/post/32815/default.asp )



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

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

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

Спасибо за статью, очень интересно. Но я не так хочу сделать.
Во-первых, я хочу сделать по алгоритму.
Во-вторых, используя то же окошко,т.е. на нем орудуя, как будто игрок играет.
В-третьих, я пока не умею пользовать WindASM, это надо еще будет поучиться ломать крякми, ассемблеру.
В-четвертых, это вроде как раз сапер2(если я правильно понял) Я ломаю 98го.



***********************************************************
Кстати, у меня что-то пока не очень получается использовать ресурсы.
На msdn совсем не понятно написано.
Я нашел какой-то учебник, как ресурсы искать в exe-шнике.
Но как отлавливать появление на экране - я просто не представляю.
Подскажите, плиз. Не помешал бы маленький примерчик.

Кстати, еще такая странная фигня.
Я раньше когда использовал WM_LBUTTONDOWN, я это писал так
SendMessage(hwnd,WM_LBUTTONDOWN,0,0)

Если использовать координаты, то, например, так
SendMessage(hwnd, WM_LBUTTONDOWN , 0,MAKELPARAM( 19, 62));

А вот как 1nn0cent предлагал, я тоже попробовал
SendMessage(hwnd, WM_LBUTTONDOWN , MK_LBUTTON,0);
SendMessage(hwnd, WM_LBUTTONDOWN , MK_LBUTTONUP,0);

Фишка в том, что на слове MK_LBUTTONUP компилятор ругается, говорит, такого не бывает.
Почему?



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

Создано: 23 июля 2006 22:54 · Поправил: Obsession
· Личное сообщение · #14

Вот у меня не получается загрузить картинки из сапера.
Я нашел какую-то прогу, которая может-таки перебрать все ресурсы, которые есть в проге.
(остальные примеры вообще ничего не могут загрузить)
Вот эта прога(на Builder 3.0):


BOOL WINAPI
f_EnumFunc(HMODULE hModule,LPTSTR lpType,LONG lParam)
{
char vrgchBuffer[100];
if((ULONG)lpType & 0xFFFF0000)
{
wsprintf(vrgchBuffer,"%s\n",lpType);
}
else
{
wsprintf(vrgchBuffer,"%u\n",(USHORT)lpType);
}
MessageBox(0,vrgchBuffer,"Ресурс",MB_ICONEXCLAMATION);
return true;
}


void __fastcall TForm1::Button1Click(TObject *Sender)
{
//Цифры выдаваемые программой говорят о номерах ресурсов, которые использовал программист при ее написании.
HMODULE hMod=NULL;
hMod = LoadLibrary("Indicdll.dll");
if(hMod != NULL)
{
EnumResourceTypes(hMod,(ENUMRESTYPEPROC)f_EnumFunc,0);
FreeLibrary(hMod);
}
else Label1->Caption="Нет возможности загрузить модуль программы";

}


Но эта прога во-первых в winmine.exe вообще ничего не находит.
Я нашел InqSoftом, что она использует библиотеку С:/windows/system/Indicdll.dll

Запустил прогу на поиск в этой dllине, она выдала просто 16.
Не представляю, что это значит.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 24 июля 2006 11:13
· Личное сообщение · #15

Obsession пишет:
Не представляю, что это значит.

Ресурс с картинками "разминирования" лежит в самом winmine, имеет тип bitmap и для цветного дисплея его номер - 410(видимо десятичный). Bitmap имеет форму длинного вертикального прямоугольника. Это верно для 2000-го и ХП, но думаю в 98-м все так же.

8eaa_24.07.2006_CRACKLAB.rU.tgz - 410.bmp



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

Создано: 24 июля 2006 13:49
· Личное сообщение · #16

tundra37, спасибо большое, конечно, за старание.
Но все равно не ясно, как же его оттуда достать.
И не понятно, почему всего одна картинка: как ее можно использовать по частям.

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

Я правда читал LoadResource (и LoadBitmap и LoadIcon и LoadCursor Loadfile(кажется, там такие названия))
но вообще ничего не понятно. Мне даже уже начинает казаться, что зря я за это дело взялся, если все так сложно



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

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

Obsession пишет:
Если не трудно, напиши пожалуйста примерчик, хотябы как ты извлек эту картинку.

Есть программы для работы с ресурсами. Я использовал Restorator 2005. Программно с ресурсами дела не имел, поэтому подсказать не могу. Надо искать : тутор+LoadBitmap Может здесь на форуме или в статьях по программированию это есть(LoadBitmap).


 eXeL@B —› Вопросы новичков —› Сапер
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати