| eXeL@B —› Вопросы новичков —› Локальные переменные (IDA) | 
| Посл.ответ | Сообщение | 
| 
 | 
Создано: 11 января 2012 03:46 · Поправил: VintProg  · Личное сообщение · #1 Есть такой код: Code: 
 что тут именно происходит? какие-то значение из регистров ebx, esi, edi, ebp кидаются в стек, потом указатель стека мину суется esp-30h и обнуление... для чего такая ерунда делается? ![]()  | 
| 
 | 
Создано: 11 января 2012 07:54  · Личное сообщение · #2  | 
| 
 | 
Создано: 11 января 2012 08:41  · Личное сообщение · #3 VintProg пишет: какие-то значение из регистров ebx, esi, edi, ebp кидаются в стек Состояния регистров сохраняются. Значит ниже регистры используются для работы функции. Потом состояние должно восстановиться путем извлечения сохраненных состояний со стека. VintProg пишет: потом указатель стека мину суется esp-30h Потом резервируется 30h (48d) байт на стеке. Для чего - нужно смотреть дальше по коду, видимо под локальные переменные, на которые не хватило регистров, или просто под небольшой буфер. VintProg пишет: и обнуление... Обнуляется младшие 8 бит регистра ebx VintProg пишет: для чего такая ерунда делается? Для пошагового управления процессором, для чего же еще. ----- Yann Tiersen best and do not fuck ![]()  | 
| 
 | 
Создано: 11 января 2012 11:40  · Личное сообщение · #4  | 
| 
 | 
Создано: 11 января 2012 17:16  · Личное сообщение · #5  | 
| 
 | 
Создано: 11 января 2012 17:19  · Личное сообщение · #6  | 
| 
 | 
Создано: 11 января 2012 17:27  · Личное сообщение · #7 VintProg пишет: Я хочу научится, понимать это глубоко. ![]() Найди книги - Ассемблер для процессоров Intel Pentium - Юрий Магда Assembler. Практикум - Юров В.И. Assembler. Учебник для вузов. Второе издание - Юров В.И. Пирогов В. - Ассемблер и дизассемблирование 2006 В сети есть) Ищи сам) Помогает в понимании ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube ![]()  | 
| 
 | 
Создано: 11 января 2012 18:11  · Личное сообщение · #8 74 cb JZ rel8 Jump short if zero (ZF <-- 1). кстати вот что в мануалах нашел. Что означает это стрелка <--? Я не могу понять что происходит с ZF. написано прыжок если 0. а если такая конструкция? Code: 
 не могу понять, здесь же не ноль, значит прыжка не будет? ![]()  | 
| 
 | 
Создано: 11 января 2012 18:38 · Поправил: neomant  · Личное сообщение · #9  | 
| 
 | 
Создано: 11 января 2012 18:53 · Поправил: Hexxx  · Личное сообщение · #10 будет прыжок. cmp делает вычитание т.е. 100-100=0 и будет установлен флаг Z mak пишет: Ассемблер для процессоров Intel Pentium - Юрий МагдаAssembler. Практикум - Юров В.И.Assembler. Учебник для вузов. Второе издание - Юров В.И.Пирогов В. - Ассемблер и дизассемблирование 2006 имхо полезнее прочитать главу "Шаг седьмой. Идентификация ключевых структур языков высокого уровня" в "Техника хакерских атак. Фундаментальные основы хакерства" Криса Касперски. А не читать книги про абстрактный ассемблер. Справочник по асму конечно нужен, но читать его... ----- Реверсивная инженерия - написание кода идентичного натуральному ![]()  | 
| 
 | 
Создано: 11 января 2012 19:28 · Поправил: VintProg  · Личное сообщение · #11  | 
| 
 | 
Создано: 11 января 2012 20:40  · Личное сообщение · #12  | 
| 
 | 
Создано: 11 января 2012 21:30  · Личное сообщение · #13  | 
| 
 | 
Создано: 12 января 2012 08:27 · Поправил: PE_Kill  · Личное сообщение · #14 VintProg пишет: если так, то значит будет больше нуля, в флаге, если не рассматривать отрицательные числа У процессора нет знаковой арифметики, есть что то вроде ее эмуляции посредством флагов и спецкоманд. А у jz есть синоним - je. Прыжок если равно. Т.е. пример выше можно рассматривать или так: (jz) если eax - 100h равно нулю, то... или так (je) если eax равно 100h, то... VintProg пишет: да я имел введу вообще, может по глубине стека ориентирования лучше, в исследование... По глубине стека можно определить глубину стека  
----- Yann Tiersen best and do not fuck ![]()  | 
| 
 | 
Создано: 12 января 2012 10:28  · Личное сообщение · #15  | 
| eXeL@B —› Вопросы новичков —› Локальные переменные (IDA) | 














 Для печати