

exorcise
Пользователи-
Постов
66 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Загрузки
Блоги
Весь контент exorcise
-
как подменить значение регистра?
exorcise опубликовал тема в Создание трейнеров в специальных студиях
В байт-коде игры есть инструкция mov eax, [ecx]. Так вот в регистре ecx содержится адрес, как его подменить? я пишу программку на C++ и надо через неё подменить этот адрес. -
keng, она у меня на скриншоте уже закрылась и строчка сразу покраснела. Ещё вопрос: То меню что вызывается по клику правой кнопкой мыши? меню верхнего бара или самого окна?
-
keng, понятно. Но как ты увидел что он заходит в WndProc? У меня вот что:
-
Как тогда будет выглядеть функция? WinProc2? Если действия для всех окон одинаковые то можно всем указать на один и тот же WinProc? а если нужны иные действия в окне то новый WinProc, да? Я понимаю что CreateWindow создаёт окно, но что если CreateWindow поместить после RegisterClass а не в нём? Было бы не плохо Английский я пока только со словарём. Нет, ну знаю например что CreateWindow это СоздатьОкно. Ну и прочие слова что часто встречаются. Но тексты всякие что на мсдн, не прочитаю сам. Ну а так пока понятно. Создали точку входа в программу, с неё начинает работать программа. Хотим создать окно, которому нужен класс. Создаём структуру окна, регистрируем класс указав на структуру окна. Создаём окно, указав в нём уже зарегистрированный класс.
-
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 вернёт "не ок"? может ли быть такое? Ещё я не понял про отладку: тут да, программа завершается. Как её отладить?
-
Хорошо. Спасибо что откликнулся.
-
Привет. Дело в том, что я не знаю с чего начать. Я не сильно знаю C++ но мне нравится его синтаксис, поэтому хочу писать на нём. Я имел только опыт редактирования чужих исходников. А сейчас нашёл все адреса и хотел сделать окошко для трейнера. Но с чего начать писать это окошко?
-
MasterGH. Мде... Смысл тогда от вашего форума?если всё и так уже есть. Вот что за люди? Нет бы помочь, объяснить. Coder, напомню что я не имел опыта в этом деле. Неужели нету того кто может помочь? Действительно помочь, а не послать на мсдн в котором я не понимаю ничёрта.
-
Помогите пожалуйста. Хочу создать окно для будущего трейнера. В нём мне нужна фоновая картинка, тексты, кнопки. Можно исходный код или видео-урок где-то найти? Я использую VSC++
-
По вашей логике это единственный способ записать данные в ячейку памяти =\
-
Coder, у меня есть ReClass он разве искать умеет? и кстати 2011 это его последняя версия или есть посвежее? keng, Спасибо за советы.
-
а в ваших видео-уроках это есть? а по поводу темы, есть такие программы?
-
Так мне и нужно узнать адрес. Вот как люди находят адреса, значения которых не меняются совсем?
-
Вы меня не правильно поняли. Мне это надо не для того чтобы "стырить" чужое, а для того чтобы посмотреть как это делают профи. Тоесть поучиться на этих трейнерах. А первые два пункта могут сразу отпасть, так как иной раз неизвестно кто автор и как с ним связаться. Отладчик это да, многое может. Но проблема в том что не все им владеют. Такая программа была раньше и распространялась сайтом chemax, но ссылки давно умерли и их не обновляют. А по поводу "нужно добиваться самому" я согласен с этим. Я сам и отыскал все адреса. Но ввиду моей неопытности в этом деле передомной возникают трудности которые я не знаю как решить, вот и хотелось бы глянуть как это сделали другие.
-
Трейнеры пишут по каким-то адресам какие-то данные. Есть ли какие-то программы чтобы отслеживать что и куда они пишут?
-
Я ничего не понимаю из того что это [ecx+esi*4] значит. Знаю только что эта инструкция получает доступ к нужному мне адресу. На неё есть указатель. Но указатель не указывает сразу на мой адрес, а значит есть смещение. А оно точно есть, так как я добавляю смещения по очереди, пока не увижу свой адрес. Но это очень долго и нудно, а ещё и не правильно. Вот поэтому хотелось бы узнать как найти то смещение сразу которое я ищу перебором. Если надо, то я могу вечером предоставить пример. Так как сейчас нет возможности это сделать. Извините меня если что не так пишу, просто я ещё "чайник"
-
A1t0r,как на первом скрине не пробовал. А вот как на втором пробовал. Та кнопка не работает у меня, тоесть я нажимаю удалить бряк, а он как висел так и висит. А в окнах там где бряк на доступ, запись я всегда нажимаю стоп и закрываю. Однако надпись "В настоящее время используются все отладочные регистры. Освободите один из них и попробуйте снова." со временем появляется.
-
Всё получилось Правда зелёный был не 5-й адрес а второй. Но он такой же как и у вас CraftWorld.exe+3168B4. Блин, как же злит криворукость разработчиков. Всё дело было в новой версии CE. Я с отладчиками мучился, игру перекачивал... Но никак не мог подумать на CE, пока он не стал единственным на что осталось думать. А ещё спасибо вам за помощь. И за галочку Получается раньше без квадрата в ней я не все адреса видел которые могли обращаться к интересующему меня адресу. A1t0r, Но если бы так случилось что когда в пункте 7 "Нашлась туча значений. Среди них 5-я единственная зелёная" не нашлось бы этого зелёного адреса, то пришлось бы по очереди перебирать предыдущие адреса поиска("Нашлось примерно 15 адресов"), а затем и все адреса текущего поиска("Нашлась туча значений"), лазить по всем ответвлениям этих адресов и инструкций до тех пор пока не нашёлся бы статический, зелёный адрес? И ещё вопрос: Вот вы ставили бряк на запись, а я всегда ставлю на доступ. Есть-ли большая разница в этом? Может ли это быть причиной моих неудач в поиске указателей?