Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Найти указатель (ранее найденный) и изменить его в Pascal

Garik Мастер (1009), на голосовании 6 лет назад
Скажите пожалуйста как найти указатель (ранее найденный в cheat engine) и изменить его (я пока изучаю Pascal скоро буду c++ ,php, javascript, html, lua и я знаю что на них проще будет это делать ).
Голосование за лучший ответ
Алексей Козейкин Мудрец (15330) 6 лет назад
Указатель - переменная, хранящая в себе адрес первой ячейки памяти, с которой начинается блок данных определенного типа. Память выделяется не последовательно по желанию программиста, а в так называемой куче - части виртуальной памяти, принадлежащей именно тому процессу, который был создан исполняемым файлом программы. Учитывая жесткую систему безопасности Windows по разграничению процессов и выделяемой им памяти, прямого доступа к куче чужого процесса из своего ты не получишь. Для организации взаимодействия между разными процессами (в том числе и управления чужим процессом) используются разные механизмы, самым простым из которых являются ловушки (HOOK). Так что, напрямую - никак, пили WinAPI в сторону взаимодействия процессов и управления чужими приложениями/окнами/процессами. Язык программирования тут, конечно, важен, но из предложенных тобой подойдут только Pascal и C++. Остальное для совсем других целей.
GarikМастер (1009) 6 лет назад
Пока что слово (команда) HOOK мне не известна . Мажете сказать пожалуйста поконкретней ?
Алексей Козейкин Мудрец (15330) HOOK - ловушка (дословный перевод так и звучит - крючок, ловушка). Смысл в том, что для организации взаимодействия между разными процессами в винде нужно, что бы управляющий процесс (твоя программа) получил доступ к памяти, выделенной для "подчиненного" процесса, что напрямую невозможно. Ловушка - динамическая библиотека, которая загружается в память чужого процесса "против его воли" и позволяет получить доступ к его очереди сообщений и виртуальной памяти не теряя связи с "управляющим" процессом и позволяя ему реагировать на любые изменения в "подчиненном" процессе, вплоть до полного игнорирования каких-либо даже системных сообщений. Блин, написал и... Вот ты сможешь основы квантовой физики или геометрии Лобачевского объяснить детсадовцу (без обид)?
Голова Робота Просветленный (36328) 6 лет назад
Из твоего вопроса не совсем понятно, что ты хочешь. Я не знаю, что такое "cheat engine". Где ты хочешь изменить данные: в памяти или в исполняемом файле (exe, dll)?
Тебе надо сначала глубже изучить программирование, только после этого пытаться применять полученные знания для решения реальных задач.
Тут годится любой язык, из которого можно вызывать функции Windpws API. С/С++ точно подойдёт, но можно сделать и на Паскале. PHP, JavaScript, HTML не годятся. По поводу JavaScript и lua есть сомнения. HTML вообще не в тему.

Нет смысла изучать такой набор языков. Лучше хорошо изучить один язык (или несколько ВЗАИМОСВЯЗАННЫХ языков), чем плохо знать разные языки. PHP, JavaScript, HTML+CSS – это веб-программирование. С++ – системные программы. Это разные направления.
steam_old_engine Просветленный (27190) 6 лет назад
Cheat engine - это поймать некий кусок памяти и юзать его? Так это использование недокументированных возможностей. Тут все зависит от способностей программиста.
Ирина Гвардеева Мудрец (14310) 6 лет назад
За тебя тут ничего делать не будут.
GarikМастер (1009) 6 лет назад
Я же не наивный, мне первые три ответа направления дали, а ответ :'За тебя тут ничего делать не будут.' Мне абсолютно ничего не дает (кроме осознания что есть заядлые лицемеры)
PR Гуру (2600) 6 лет назад
Если указатель найден с помощью Cheat Engine, так и изменяйте его значение там же.
Если возможности Cheat Engine не позволяют этого (впрочем, тогда нафиг он вообще нужен), воспользуйтесь ArtMoney - там есть функция поиска, замены и даже заморозки в разных вариантах - возможностей куча. И вам незачем будет писать для этого специальную программу - всё уже давно написано.
Я не стараюсь отбить у вас стремление научиться программированию, просто предупреждаю, что затронутая вами область сложная для понимания и прочтение книжки а-ля "Delphi для чайников" будет мало.
GarikМастер (1009) 6 лет назад
В Cheat engine Можно изменять указатель просто через паскаль нормальную программу мне было бы легче писать . в Cheat engine(пример) jne je cmp, а в паскале (пример) while for if repeat
Похожие вопросы