Посл.ответ |
Сообщение |
Ранг: 681.5 (! !), 405thx Активность: 0.42↘0.21 Статус: Участник ALIEN Hack Team
|
Создано: 24 сентября 2011 00:40 · Личное сообщение · #1
v6 = (char *)hinstDLL + 4 * (v5 >> 2); for ( i = v5 & 3; i; --i ) *v6++ = 0; Работал хекс-рейз. В чём суть - v5 = SizeOfHeaders. Я понимаю, что происходит, не пойму, зачем это нужно.
----- Stuck to the plan, always think that we would stand up, never ran. | Сообщение посчитали полезным: |
|
Ранг: 1053.6 (!!!!), 1078thx Активность: 1.06↘0.81 Статус: Участник
|
Создано: 24 сентября 2011 00:57 · Личное сообщение · #2
ну общий смысл делить и умножать на одно и тоде число был - выравнивание
| Сообщение посчитали полезным: |
Ранг: 681.5 (! !), 405thx Активность: 0.42↘0.21 Статус: Участник ALIEN Hack Team
|
Создано: 24 сентября 2011 01:37 · Личное сообщение · #3
SizeOfHeaders умножается на 4 (v5 >> 2), потом ещё раз на 4 и прибавлется к ImageBase (v6 = (char *)hinstDLL + 4 * (v5 >> 2)). Потом цикл. Начальное условие, что остаются только два младших бита от SizeOfHeaders, значение инкрементится, а по полученному выше адресу записываются нули. Это ж ахтунг, какой в этом смысл?
----- Stuck to the plan, always think that we would stand up, never ran. | Сообщение посчитали полезным: |
Ранг: 35.0 (посетитель), 11thx Активность: 0.03↘0 Статус: Участник
|
Создано: 24 сентября 2011 06:58 · Личное сообщение · #4
ARCHANGEL пишет: SizeOfHeaders умножается на 4 (v5 >> 2) это деление на 4
| Сообщение посчитали полезным: |
Ранг: 793.4 (! !), 568thx Активность: 0.74↘0 Статус: Участник Шаман
|
Создано: 24 сентября 2011 08:53 · Личное сообщение · #5
sniper прав это деление без остатка, а смысл кода в следующем: v6 = (char *)hinstDLL + AlignTo (v5, 4);
----- Yann Tiersen best and do not fuck | Сообщение посчитали полезным: |
Ранг: 756.3 (! !), 113thx Активность: 0.61↘0.05 Статус: Участник Student
|
Создано: 24 сентября 2011 17:17 · Поправил: Isaev · Личное сообщение · #6
ARCHANGEL пишет: Начальное условие, что остаются только два младших бита от SizeOfHeaders 4 * (v5 >> 2) [/i] это наоборот, обнуление 2х младших бит остаётся всё, кроме них
----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh | Сообщение посчитали полезным: |
Ранг: 681.5 (! !), 405thx Активность: 0.42↘0.21 Статус: Участник ALIEN Hack Team
|
Создано: 24 сентября 2011 20:23 · Личное сообщение · #7
Isaevя за v5 & 3 говорил. sniperНу да, точно. PE_KillСпасибо, так и есть )) Когда я уже научусь анализировать код без трассировки?
----- Stuck to the plan, always think that we would stand up, never ran. | Сообщение посчитали полезным: |
Ранг: 793.4 (! !), 568thx Активность: 0.74↘0 Статус: Участник Шаман
|
Создано: 24 сентября 2011 20:43 · Поправил: PE_Kill · Личное сообщение · #8
По личному опыту - достаточно отреверсить до компилируемых исходников код на 1к-2к строк текста, и ты обогатишь свой реверс скилл процентов на 200-300. Причем при повторении подвига с другим кодом, скилл поднимется еще примерно на столько же.
----- Yann Tiersen best and do not fuck | Сообщение посчитали полезным: mak |