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

Вызов внутриигровых функций с помощью IDA и скриптов


Рекомендуемые сообщения

Кто хочет крутых ништяков которые облегчат жизнь при взломе и отладке с помощью IDA?

 

Раз IDA становится так популярна на форуме,то по мере того как буду вспоминать что-то крутое и иметь свободное время, буду стараться писать небольшие статьи, может кто-то в дальнейшем переведет это в видео формат.

 

Если будут вопросы, то не стесняйтесь писать в комментарии, потому что иногда бывает сложно разобраться в той куче функционала который есть в IDA, а раз документации подробной нет, то будем вместе разбираться раз уж на то пошло. 

 
Можно бесконечно рассказывать о том какая крутая IDA, но это нужно попробовать самому чтобы понять и оценить.

Бывают моменты при взломе игр/программ, когда функция просто не хочет вызываться, но интересно как она работает и какие тайны скрывает в себе.

 

Для написания скрипта можно использовать idc, python и C# если установлен соответствующий плагин, я буду использовать питон.

 

Присоединяемся к игре, через IDA.

Открываем File->Script Command и пишем такой скрипт:

from idaapi import *

proto = 'float *__thiscall sub_51FCE830(void *this, float *a2, float *a3, float *a4, float *a5);'
anyfn = Appcall.proto(0x51FCE830, proto)

anyfn(0,0,0,0,str("Hello gamehacklabRU")) 

 

Что же он делает? 

Переменная proto, в ней мы задаем прототип вызываемой функции.

Appcall.proto функция для вызова внутриигровой функции по адресу с указанием её прототипа который был создан выше.

Ну и сам вызов с указанием аргументов. В общем ничего сложного.

 

 

 

 

Изменено пользователем partoftheworlD
  • Плюс 2
Ссылка на комментарий
Поделиться на другие сайты

5 часов назад, partoftheworlD сказал:

с помощью IDA

partoftheworlD, привет.

Хорошее дело затеял.

Пожелания:

1. Лучше создать (попроси Xipho, сейчас модераторов к сожалению нет, keng опять куда-то запропостился) одноимённый спец. раздел (IDA) в разделе Вопросы по утилитам. А то ты постишь в разных разделах - трудно будет искать, когда люди начнут изучать утилиту.

2. Запиши несколько конкретных примеров (не теоретич.) с использованием IDA при взломе игры, причём подчёркивающих лучшие возможности IDA перед CE.

 

И спасибо!!! Нужно будет попробовать утилиту.

Изменено пользователем Garik66
Ссылка на комментарий
Поделиться на другие сайты

Согласна с тс такие уроки щас актуальны и полезны , особенно по плагинам и скриптам , их написано 

довольно много как заметила , а разобраться в них требует время , но интересно , пример ты используешь псевдо код в своем уроке ф5 клавиша , а что думаешь а плагине SNOWMAN ? где ф3 идет декомпил на с++ 

полезен ли он на твой взгляд ? если да то в каких случаях , а вообще жду твоих новых уроков слежу интересно. 

 

Ссылка на комментарий
Поделиться на другие сайты

:offtopic: много кто крутых нештяков то наделал с помощью ide :) ну на столько крутых, что их СЕ_ми инструментами - ну не как не реализовать? Я понимаю, что универсального инструмента для всего  просто нет и каждый инструмент для того или иного дела просто не обходим, но дело щас не совсем в способностях той или иной программы(у каждого есть свои плюсы и минусы) а в том, кто и что сделал ею такого, что не сделали другие понимающие в этом деле люди, тем же СЕ ? Да и это касается только взлома игр, а не взлом программ - это уже совсем разные вещи и СЕ для таких дел естественно не особо катит то - так как это обычный редактор и не более того.  

PS:  

Да и это всего лишь как бы сказать, не большой вопрос и не более того. 

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, LIRW сказал:

кто и что сделал ею такого, что не сделали другие понимающие в этом деле люди, тем же СЕ ?

через CE можно сделать абсолютно все тоже что и через IDA, просто в IDA это более наглядно получается в некоторых случаях и побыстрее. Но если ты знаешь ASM и хорошо работаешь с CE, и понимаешь выполняемый код, то границ для реализации чего угодно просто нет :)

Изменено пользователем elvis66666
Ссылка на комментарий
Поделиться на другие сайты

В 24.01.2017в06:11, Garik66 сказал:

А то ты постишь в разных разделах - трудно будет искать, когда люди начнут изучать утилиту.

Привет. Так пощу  в разных разделах из-за уровня сложности использования программы.

 

В 24.01.2017в06:11, Garik66 сказал:

2. Запиши несколько конкретных примеров (не теоретич.) с использованием IDA при взломе игры, причём подчёркивающих лучшие возможности IDA перед CE.

 

Для этого надо будет подготавливаться и вспоминать, я уже записывал видео от начала до конца создание скорострельности для Dying Light, но там статический анализ использовался

 

В 24.01.2017в10:21, LIRW сказал:

ну не как не реализовать?

 

Я например много раз пытался вызвать с помощью CE функцию, но при создании потока у меня игра крашилась, хотя аргументы верно указывал, но так и не разобрался.Или перебор значений интересующего аргумента, чтобы понять поведение функции. 

 

В 24.01.2017в10:21, LIRW сказал:

Я понимаю, что универсального инструмента для всего  просто нет и каждый инструмент для того или иного дела просто не обходим, но дело щас не совсем в способностях той или иной программы(у каждого есть свои плюсы и минусы) а в том, кто и что сделал ею такого, что не сделали другие понимающие в этом деле люди, тем же СЕ ?

 

Ну да во многом это дело привычки, я к примеру после поиска инструкции сразу открываю IDA, потому что мне удобно работать с кодом в виде графика, чтобы сразу пройтись по местам где что-то сравнивается.

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

Изменено пользователем partoftheworlD
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...
В 24.01.2017в07:36, Angelika сказал:

а что думаешь а плагине SNOWMAN ? где ф3 идет декомпил на с++ 

полезен ли он на твой взгляд ?

Извиняюсь за столь долгий ответ, просто не видел вопроса. Любой плагин полезен под определенные задачи и стоит уметь им пользоваться, но как по мне снеговик выводит слишком много лишней информации, но так же мне нравится как он выводит структуры, чего нет в hex-ray приходится еще один плагин использовать, чтобы реконструировать интересующую переменную в структуру. 

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

В 16.02.2017в18:23, partoftheworlD сказал:

Извиняюсь за столь долгий ответ, просто не видел вопроса.

приходится еще один плагин использовать

я не торопила всё окей )

какой плагин? интересно узнать , жаль видео нет , я быстро учусь если есть примеры )

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

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

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