Comments 40
+21
В сапере карта мин хранится в двумерном массиве. Достаем массив из памяти процесса, и рисуем все что угодно на канве его окна в нужных местах))
Есть одно условие еще. Если человек первым же кликом попадает мину, то ее местоположение меняется.
Есть одно условие еще. Если человек первым же кликом попадает мину, то ее местоположение меняется.
+1
В ассемблере нет понятия «двумерного массива», нет даже понятия «массива». Есть лишь«указатели». Отследить все указатели на положение мин достаточно сложно, поэтому я пока этим даже не занимался. Зато мне удалось обнаружить функцию, отвечающую за отображение всех мин( при проигрыше ). Возможно, в следующих статьях поведаю об этом.
-6
Я уверен, автор предыдущего поста и имел в виду это. Небольшой намёк: данные скорее всего хранятся рядом, а, быть может, и даже в виде 1-мерного массива.
0
+3
Не, этого не видел. Кстати, спасибо)
0
Именно эту нет, видел и другие статьи с похожим результатом на delphi
0
Даже такое было ;)
habrahabr.ru/post/131117/
habrahabr.ru/post/131117/
0
Если человек первым же кликом попадает мину, то ее местоположение меняется.Я всегда был уверен, что поле заполняется минами только после первого клика.
+4
Читер! Ату его, ату!
Что, не осилили в минёра выиграть?
:)
Что, не осилили в минёра выиграть?
:)
+2
А мне понравился пост. Никогда в эту тему не влезал, но сейчас почитал с интересом. У автора легкий понятный язык, тема похоже из первых рук. Ничего не приобрел, но прочитал с удовольствием.
+4
Наконец-то я выиграю в сапёра.
+3
Перерисовывал как-то на вин95(вроде) карты в солитёре попиксельно, редактируя программу в нортон командере. Это было сложно:)
+1
У меня в детстве с желания пройти игрушку до конца (и отсутствия infinite life в загрузчике ;) ) началась эпопея по взлому игр. Как сейчас помню — www.worldofspectrum.org/infoseekid.cgi?id=0009438 Что самое характерное, если бы на этой первой не получилось, то возможно и не пытался бы больше, но ощущение того, что ты сам нашёл как это всё обессмертить давало какое-то ощущение эйфории. Потом были самописные искатели последовательностей байт( это нужно было для поиска типа — «а если жизнь хранится не числом а сразу символами… а что если жизнь уменьшается не DEC а через SUB....» и т.д.), выдиратели спрайтов и музыки с плеерами и много чего ещё. И ведь всё без инета :) Как умудрялись…
Вот только сейчас уже ничего этого не хочется :( И времени нет и понимаю, что тех ощущений уже не вернуть…
Вот только сейчас уже ничего этого не хочется :( И времени нет и понимаю, что тех ощущений уже не вернуть…
+4
1. Запустите сапер.
2. Установите курсор в область с игрой.
3. Наберите «XYZZY» и нажмите Shift-Enter и Enter. В верхнем левом углу экрана должна появиться белая точка. При наведении курсора на мину точка будет менять свой цвет на черный.
4. Вот и все. Наслаждайтесь возможностью никогда не взрываться, играя в Сапер!
2. Установите курсор в область с игрой.
3. Наберите «XYZZY» и нажмите Shift-Enter и Enter. В верхнем левом углу экрана должна появиться белая точка. При наведении курсора на мину точка будет менять свой цвет на черный.
4. Вот и все. Наслаждайтесь возможностью никогда не взрываться, играя в Сапер!
+4
Помню когда-то делал возможность сохранятся с помощью внедрения библиотеки. Тогда в меню появлялись Open, Save.
0
Да, такую вещь можно провернуть. В процессе исследования «Сапера» также выяснилось, что координаты мин задаются после первого клика по клетке поля игры( я, например, этого не знал, так как ранее не играл в сапера ). Соответственно, с этим можно что-либо сделать :)
0
Не верно, Массив заполняеться до нажатия первой ячейки. Массив находиться на 01005360 если правильно помню. Бомба/Мины имеют значение 8F а пустые клетки имеют 0F. при вкрытии клетки, заполняються соседнии клетки «возможности» расположения там бомбы, а не сами бомбы.
Проверить очень просто, в Cheat Engine выставить понтер на 01005360 и посмотреть что пишет в этот массив.
Также хочу добавить что при первом клике и попадании на бомбу значение будет заменено на 0F
Проверить очень просто, в Cheat Engine выставить понтер на 01005360 и посмотреть что пишет в этот массив.
mov dword ptr[eax+"offset"], -80
инструкция которая пишет в массив. ставим брейк поинт и видим что массив заполнен перед началом игры.Также хочу добавить что при первом клике и попадании на бомбу значение будет заменено на 0F
0
Здесь же: «нутро» первой клетки, по которой пришелся клик также определяется после щелчка мыши по ней.
0
UFO just landed and posted this here
Дежавю…
+1
— Ваше хобби?
— Крякинг
— Продемонстрировать можете?
— Кря-кря
— Крякинг
— Продемонстрировать можете?
— Кря-кря
+5
UFO just landed and posted this here
Ну здесь всё равно, получение неправомерного доступа. Статья 272, как она есть =)
0
Ассемблерный код исполняется на моем компьютере, в моем процессоре ( кэп), следовательно, без них кода не существует вовсе. Из этого следует, что АССЕМБЛЕРНЫЙ код также принадлежит мне, т.е моему процессору( по крайней мере, в данный момент ), из чего, наконец, следует то, что менять код я могу так, как мне вздумается( он же мой ).А вот распространять взломанное — уже другое дело.
P.S И, да, код игры «Сапера» вряд ли охраняемый( как гласит 272 статья)… по крайней мере, машинный код.
P.S И, да, код игры «Сапера» вряд ли охраняемый( как гласит 272 статья)… по крайней мере, машинный код.
0
Вы внимательно читали EULA на MS Windows? ;)
0
Его ведь никто никогда не читает :) Разве существуют такие люди, которые читают лицензионное соглашение, тем более ВНИМАТЕЛЬНО !?
0
А вы внимательно читали статью 1280 ГКРФ «Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ»?
0
Sign up to leave a comment.
Взламываем игру-головоломку «Сапер»