| eXeL@B —› Вопросы новичков —› Найти запись в локальную переменную... | 
| Посл.ответ | Сообщение | 
| 
 | 
Создано: 28 октября 2011 20:29  · Личное сообщение · #1 работаю в IDA и есть код: Code: 
 для начало интересует что сюда передается: Code: 
 только без всяких отладчиков... не обходимо найти что сюда записывается: lvar_238 жму X везде выдает только на чтение... Есть тут люди более менее понимаемые? ![]()  | 
| 
 | 
Создано: 28 октября 2011 20:40  · Личное сообщение · #2 ну дык ето адрес (видимо) передается и Weapons_shots_ уже туда пишет (или не пишет) - глядите сами   | Сообщение посчитали полезным: Hexxx | 
| 
 | 
Создано: 28 октября 2011 20:42  · Личное сообщение · #3  | 
| 
 | 
Создано: 28 октября 2011 20:47 · Поправил: digger70  · Личное сообщение · #4  | 
| 
 | 
Создано: 28 октября 2011 21:01  · Личное сообщение · #5  | 
| 
 | 
Создано: 28 октября 2011 21:03  · Личное сообщение · #6  | 
| 
 | 
Создано: 28 октября 2011 21:03  · Личное сообщение · #7  | 
| 
 | 
Создано: 28 октября 2011 21:07  · Личное сообщение · #8  | 
| 
 | 
Создано: 28 октября 2011 21:09  · Личное сообщение · #9  | 
| 
 | 
Создано: 28 октября 2011 21:32 · Поправил: OKOB  · Личное сообщение · #10 первые 4 параметра передаются по значению, последние 2 по ссылке (указателю). Через ECX обычно передается адрес объекта класса для которого вызывается метод. _camera->Weapons_shots_(range, var_290, var_28C, var_288, &var_238, &var_22C) sendersu пишет: и Weapons_shots_ уже туда пишет ----- 127.0.0.1, sweet 127.0.0.1   | Сообщение посчитали полезным: VintProg | 
| 
 | 
Создано: 28 октября 2011 22:03  · Личное сообщение · #11  | 
| 
 | 
Создано: 28 октября 2011 22:26  · Личное сообщение · #12  | 
| 
 | 
Создано: 28 октября 2011 23:00  · Личное сообщение · #13  | 
| 
 | 
Создано: 28 октября 2011 23:02  · Личное сообщение · #14  | 
| 
 | 
Создано: 28 октября 2011 23:25  · Личное сообщение · #15  | 
| 
 | 
Создано: 29 октября 2011 00:01  · Личное сообщение · #16  | 
| 
 | 
Создано: 29 октября 2011 01:28  · Личное сообщение · #17  | 
| 
 | 
Создано: 30 октября 2011 13:44  · Личное сообщение · #18 VintProg А чего выяснять. Решение первое и нормальное - применить отладчик. Решение второе: при вызове Weapons_shots передается ссылка, т.е. адрес lvar_238 Соответственно в самой Weapons_shots в ИДА вы уже не увидете обращений к lvar_238 и придется отслеживать 4-й параметр. Аналогично может произойти и в других подпрограммах. Т.ч. долго еще искать и искать вам ответ самому, раз отладчик низзя... Разжевывать никто не будет, хоть это и для новичков. Уже все разжевали, а я только сегодня добрый  
![]()  | 
| 
 | 
Создано: 30 октября 2011 16:26 · Поправил: Hexxx  · Личное сообщение · #19 tundra37 пишет: Решение первое и нормальное - применить отладчик Ерунда. var_238 - это стековая переменная, а это: Code: 
 загрузка указателя на начало этой переменной. Переменная может оказаться, как простого типа (int, short, char), так и структурой или массивом, или даже классом в стеке. Если ниже по коду, после Weapons_shots_, обращений именно к var_22C, значит это сложный тип. Ида физически не может прохавать код вида: Code: 
 Она напишет, что buffer - это одна переменная, а buffer[12] - другая. Для нее и то и другое - стек, она не знает что эти два куска стека - части одной переменной. Поэтому, нужно выяснить какого размера эта переменная, и объяснить иде. А выяснить это можно только анализом того как код MyFunc() обращается с передаваемым буфером. Дальше, когда известен размер, нужно создать правильную стековую переменную buffer, правильного размера. Тогда IDA начнет показывать var_22C+XX в том месте где обращаются к содержимому. Ну и дальше уже предстоит разбираться что там по этому смещению XX, какое-то поле структуры/класса или просто смещение в массиве. ----- Реверсивная инженерия - написание кода идентичного натуральному ![]()  | 
| 
 | 
Создано: 30 октября 2011 17:47 · Поправил: VintProg  · Личное сообщение · #20  | 
| 
 | 
Создано: 31 октября 2011 13:28  · Личное сообщение · #21  | 
| eXeL@B —› Вопросы новичков —› Найти запись в локальную переменную... | 








  Что ж ты такой ленивый. Привел одну строчку совсем по другому адресу и имя какой-то левой(для нас) структуры. И что ждем? Ты явно перепутал этот форум с форумом экстрасенсов. Пока по твоей информации можно дать только общие советы. Но увы они для тебя бесполезны
 Для печати