как управлять одной программой из другой

Я хочу немного помочь Я знаю Java и немного с ++. Я видел кроссовки для игр, которые могут определять здоровье игрока, икру машины и т. Д. Я хочу сделать что-то подобное.

Например, у нас работает тральщик. когда я запускаю свою Java-программу и нажимаю на кнопку, она должна вызывать функцию тральщика, а игра тральщика должна показывать, что я выиграл.
Поэтому мой вопрос заключается в том, как установить соединение или что-то с другой программой, выполняющей и вызывающей функции программы путем передачи аргументов. как это возможно. Я слышал об обратном инжиниринге и скачал программу под названием OllyDBG. И Winject Dll инжектор. я не знаю, что делать. Объединяя все это, как я могу сделать программу. Пожалуйста, дайте мне идеи или коды или полезные ресурсы.

-6

Решение

Ну, ваше начальное предложение было:
«Я видел кроссовки для игр, которые могут определять здоровье игрока, икру машины и т. Д. Я хочу сделать что-то подобное».

Вот очень хороший справочный код, который делает то, о чем вы говорили в C ++
http://www.codeproject.com/Articles/7468/Game-Wizard

Сначала укрепите свои навыки C ++, а затем изучите, чем он там занимается.

Общее описание могло бы состоять в том, что память «жертвы» — это поиск определенного значения.
Обычно это то, что представляет собой значение, о котором вы знаете, например, количество пуль вашего персонажа.
Обычно большой список мест в памяти находится вначале.
Но затем вы стреляете в пулю, и теперь в списке, который вы ранее нашли (и только в нем!), Выполняется поиск нового значения.
Каждый шаг отбрасывает «ложноположительные» результаты, пока, в конце концов, вы не узнаете местоположение искомой переменной.
После этого вы можете изменить его.

Теперь, перейдя к общей теме — этот метод является только специфическим подходом, и хотя в некоторых случаях он очень полезен, во многих случаях вам нужны более сильные и разные инструменты.

Вот очень похожий вопрос: Как я могу найти структуру данных, которая представляет мое расположение Minesweeper в памяти?

Я лично считаю, что IDA — это удивительный инструмент для обратного инжиниринга и анализа приложений (как статических, так и динамических).
В сочетании с «idapython» (привязка ida для python) его невозможно остановить 🙂

Обратный инжиниринг требует, чтобы у вас были хотя бы базовые знания архитектуры вашей целевой машины — например, инструкции x86.

Ищите учебники IDA, чтобы освоить его.
Существует множество «взломов», которые представляют собой проблемы для взлома (в образовательных целях) различных типов защиты приложений.
Это многому тебя научит.

Вы также можете поискать в Google «обратный инжиниринг для начинающих».
В Интернете есть масса ресурсов по этой теме. Поначалу объем информации может быть пугающим, поэтому убедитесь, что вы нашли базовый сайт, который поможет вам постепенно развить свои навыки.

Другой важный термин, который вы должны знать, это «зацепка». В то время как создание самостоятельно научит вас больше всего, есть библиотеки, которые выполняют эту операцию для вас.
Идея состоит в том, чтобы получить контроль над определенной функцией.
Всякий раз, когда кто-либо вызывает эту функцию, управление сначала передается вашему коду, и вы можете решить, что делать.
Например, вы можете просто записать этот вызов в файл и вызвать исходную функцию,
или вы можете делать более сложные вещи.

я нашел http://tuts4you.com/ содержать много полезных уроков и фрагментов информации.

Да, и, как говорили люди, Java в этом случае не ваш друг.
C / C ++ / Assembly, вероятно, есть.

Начать совершенно новую тему, особенно реверс-инжиниринг, сложно в начале, но я могу заверить вас, что это очень полезно.

Редактировать:
У меня есть для тебя сюрприз:
http://www.uninformed.org/?v=1&а = 7

Я просто погуглил обратный инжиниринг учебник мой дворник;)

Удачи 🙂

1

Другие решения

Сначала вам нужно перепроектировать минный тральщик, чтобы выяснить расположение в памяти различных переменных. Помните, что вы, вероятно, не сможете запускать функции тральщика из-за контекста, но вы можете внедрить в него код для их запуска. Вы можете легко прочитать память, хотя.

Чтобы внедрить код, вы должны собрать его отдельно, а затем записать в виртуальное пространство процесса.

В Windows API есть несколько функций, которые позволяют открывать процесс и обращаться к нему в памяти, но у вас должны быть для этого привилегии.

Подводя итоги: для этого в первую очередь нужно разобраться, как разобрать и понять программу. Только тогда вы поймете, как легко тральщик понять.

Кстати: тральщик хранит карту в памяти. Простой инспектор памяти позволит вам получить карту этого.

3

По вопросам рекламы [email protected]