Сейчас на форуме: Kybyx, user99 (+2 невидимых)

 eXeL@B —› Оффтоп —› Странный, странный код
Посл.ответ Сообщение


Ранг: 681.5 (! !), 405thx
Активность: 0.420.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.060.81
Статус: Участник

Создано: 24 сентября 2011 00:57
· Личное сообщение · #2

ну общий смысл делить и умножать на одно и тоде число был - выравнивание




Ранг: 681.5 (! !), 405thx
Активность: 0.420.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.030
Статус: Участник

Создано: 24 сентября 2011 06:58
· Личное сообщение · #4

ARCHANGEL пишет:
SizeOfHeaders умножается на 4 (v5 >> 2)

это деление на 4




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 24 сентября 2011 08:53
· Личное сообщение · #5

sniper прав это деление без остатка, а смысл кода в следующем:

v6 = (char *)hinstDLL + AlignTo (v5, 4);

-----
Yann Tiersen best and do not fuck





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 24 сентября 2011 17:17 · Поправил: Isaev
· Личное сообщение · #6

ARCHANGEL пишет:
Начальное условие, что остаются только два младших бита от SizeOfHeaders

4 * (v5 >> 2) [/i]
это наоборот, обнуление 2х младших бит
остаётся всё, кроме них

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 681.5 (! !), 405thx
Активность: 0.420.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.740
Статус: Участник
Шаман

Создано: 24 сентября 2011 20:43 · Поправил: PE_Kill
· Личное сообщение · #8

По личному опыту - достаточно отреверсить до компилируемых исходников код на 1к-2к строк текста, и ты обогатишь свой реверс скилл процентов на 200-300.

Причем при повторении подвига с другим кодом, скилл поднимется еще примерно на столько же.

-----
Yann Tiersen best and do not fuck


| Сообщение посчитали полезным: mak
 eXeL@B —› Оффтоп —› Странный, странный код

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0

   Для печати Для печати