Перейти к содержанию

exorcise

Пользователи
  • Постов

    66
  • Зарегистрирован

  • Посещение

Весь контент exorcise

  1. В байт-коде игры есть инструкция mov eax, [ecx]. Так вот в регистре ecx содержится адрес, как его подменить? я пишу программку на C++ и надо через неё подменить этот адрес.
  2. keng, она у меня на скриншоте уже закрылась и строчка сразу покраснела. Ещё вопрос: То меню что вызывается по клику правой кнопкой мыши? меню верхнего бара или самого окна?
  3. keng, понятно. Но как ты увидел что он заходит в WndProc? У меня вот что:
  4. Как тогда будет выглядеть функция? WinProc2? Если действия для всех окон одинаковые то можно всем указать на один и тот же WinProc? а если нужны иные действия в окне то новый WinProc, да? Я понимаю что CreateWindow создаёт окно, но что если CreateWindow поместить после RegisterClass а не в нём? Было бы не плохо Английский я пока только со словарём. Нет, ну знаю например что CreateWindow это СоздатьОкно. Ну и прочие слова что часто встречаются. Но тексты всякие что на мсдн, не прочитаю сам. Ну а так пока понятно. Создали точку входа в программу, с неё начинает работать программа. Хотим создать окно, которому нужен класс. Создаём структуру окна, регистрируем класс указав на структуру окна. Создаём окно, указав в нём уже зарегистрированный класс.
  5. keng, да, получилось такое же окошко. Но есть вопросы. Жаль что мсдн весь английский Я что-то не пойму, эта функция возвращает функцию?: LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam ) { return DefWindowProc( hwnd, message, wparam, lparam ); } А что делает этот Def? у него такие же аргументы как и у WndProc Тоесть эта функция обрабатывает всё что происходит с окнами которые мы создаём? Мы создали окно: if (RegisterClass(&wc)) { HWND hwnd = CreateWindow("Test Window", "Test", WS_VISIBLE | WS_CAPTION | WS_SYSMENU , 0, 0, 640, 480, 0, 0, hInstance, 0); return 1; } А обязательно его создавать в RegisterClass? Ведь мы заполнили структуру окна, указали на неё в RegisterClass, он нам вернёт "всё ок" if (RegisterClass(&wc)) return 1; И после него создать окно. Или окно нужно создавать именно в этой функции? И что будет если RegisterClass вернёт "не ок"? может ли быть такое? Ещё я не понял про отладку: тут да, программа завершается. Как её отладить?
  6. Привет. Дело в том, что я не знаю с чего начать. Я не сильно знаю C++ но мне нравится его синтаксис, поэтому хочу писать на нём. Я имел только опыт редактирования чужих исходников. А сейчас нашёл все адреса и хотел сделать окошко для трейнера. Но с чего начать писать это окошко?
  7. MasterGH. Мде... Смысл тогда от вашего форума?если всё и так уже есть. Вот что за люди? Нет бы помочь, объяснить. Coder, напомню что я не имел опыта в этом деле. Неужели нету того кто может помочь? Действительно помочь, а не послать на мсдн в котором я не понимаю ничёрта.
  8. Помогите пожалуйста. Хочу создать окно для будущего трейнера. В нём мне нужна фоновая картинка, тексты, кнопки. Можно исходный код или видео-урок где-то найти? Я использую VSC++
  9. По вашей логике это единственный способ записать данные в ячейку памяти =\
  10. Coder, у меня есть ReClass он разве искать умеет? и кстати 2011 это его последняя версия или есть посвежее? keng, Спасибо за советы.
  11. а в ваших видео-уроках это есть? а по поводу темы, есть такие программы?
  12. Так мне и нужно узнать адрес. Вот как люди находят адреса, значения которых не меняются совсем?
  13. Вы меня не правильно поняли. Мне это надо не для того чтобы "стырить" чужое, а для того чтобы посмотреть как это делают профи. Тоесть поучиться на этих трейнерах. А первые два пункта могут сразу отпасть, так как иной раз неизвестно кто автор и как с ним связаться. Отладчик это да, многое может. Но проблема в том что не все им владеют. Такая программа была раньше и распространялась сайтом chemax, но ссылки давно умерли и их не обновляют. А по поводу "нужно добиваться самому" я согласен с этим. Я сам и отыскал все адреса. Но ввиду моей неопытности в этом деле передомной возникают трудности которые я не знаю как решить, вот и хотелось бы глянуть как это сделали другие.
  14. Трейнеры пишут по каким-то адресам какие-то данные. Есть ли какие-то программы чтобы отслеживать что и куда они пишут?
  15. Я ничего не понимаю из того что это [ecx+esi*4] значит. Знаю только что эта инструкция получает доступ к нужному мне адресу. На неё есть указатель. Но указатель не указывает сразу на мой адрес, а значит есть смещение. А оно точно есть, так как я добавляю смещения по очереди, пока не увижу свой адрес. Но это очень долго и нудно, а ещё и не правильно. Вот поэтому хотелось бы узнать как найти то смещение сразу которое я ищу перебором. Если надо, то я могу вечером предоставить пример. Так как сейчас нет возможности это сделать. Извините меня если что не так пишу, просто я ещё "чайник"
  16. Как-то сложно. ecx это указатель? а смещение я так и не понял как найти
  17. Подскажите пожалуйста, как найти смещение к такому указателю как во второй инструкции выше? если указатель в инструкции "mov ebx, [ecx+1C]" то "1C" и будет смещение. Но когда в инструкции такое: mov ebx,[ecx+esi*4] то непонятно какое смещение и я наугад перебираю их. Подскажите как его узнать?
  18. A1t0r,как на первом скрине не пробовал. А вот как на втором пробовал. Та кнопка не работает у меня, тоесть я нажимаю удалить бряк, а он как висел так и висит. А в окнах там где бряк на доступ, запись я всегда нажимаю стоп и закрываю. Однако надпись "В настоящее время используются все отладочные регистры. Освободите один из них и попробуйте снова." со временем появляется.
  19. Вот я тоже перезапускаю CE. Игра после этого сама закрывается Но бывает что и не закрывается. Но это ведь не правильно, я имею ввиду закрывать программы. Как это сделать? Я хотел убрать но не знаю как. Там в отладчике есть "Список брейкпоинтов" но кнопка "удалить брейкпоинт" не работает.
  20. В настоящее время используются все отладочные регистры. Освободите один из них и попробуйте снова. < Это пишет CE когда ставлю бряк. Что делать?
  21. Всё получилось Правда зелёный был не 5-й адрес а второй. Но он такой же как и у вас CraftWorld.exe+3168B4. Блин, как же злит криворукость разработчиков. Всё дело было в новой версии CE. Я с отладчиками мучился, игру перекачивал... Но никак не мог подумать на CE, пока он не стал единственным на что осталось думать. А ещё спасибо вам за помощь. И за галочку Получается раньше без квадрата в ней я не все адреса видел которые могли обращаться к интересующему меня адресу. A1t0r, Но если бы так случилось что когда в пункте 7 "Нашлась туча значений. Среди них 5-я единственная зелёная" не нашлось бы этого зелёного адреса, то пришлось бы по очереди перебирать предыдущие адреса поиска("Нашлось примерно 15 адресов"), а затем и все адреса текущего поиска("Нашлась туча значений"), лазить по всем ответвлениям этих адресов и инструкций до тех пор пока не нашёлся бы статический, зелёный адрес? И ещё вопрос: Вот вы ставили бряк на запись, а я всегда ставлю на доступ. Есть-ли большая разница в этом? Может ли это быть причиной моих неудач в поиске указателей?
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.