Вот ещё перл из того же исходника: Код (Text): push (76 shr 2) + 1 pop edx Что, 76 поделить на 4 уже никак? Нужна помощь препроцессора? ))))
я когда-то похоже брутфорсил буквами, а счас посмотрел - уже и сам понять не могу Код (Text): sub cl,'[' - 'A' add ecx,0x100 cmp cx,'[' shl 8 or 'A' jnz @crc sub ecx,('[' - 'A') shl 8 add ecx,0x10000 mov eax,ecx and eax,0xffffff cmp eax,'[' shl 16 or 'AA' jnz @crc sub ecx,('[' - 'A') shl 16 add ecx,0x1000000 cmp ecx,'[' shl 24 or 'AAA' jnz @crc sub ecx,('[' - 'A') shl 24 ... mov ebp,eax cmp ebx,'AAA' shl 8 or '[' lea ebx,[ebx+1] jnz @crc mov edi,'AAA' shl 8 or '[' sub ebx,'[' - 'A' +1
гляда на такие перлы - понимаешь, что главный принцип этого кодера - сделай так, что бы твои исходники никто не смог понять, даже ты сам!! ))) З.Ы.: не в тему кода, но в тему, про то "чтобы никто не понял", вспоминаю случай: собрался я как-то к брату в гости, в сибирь, на Алтай метнуться... закриптовал все диски, придумал хитроумные парольные фразы - и со спокойной душей, и мыслью, что мои данные ни кто прочесть и понять не сможет поехал... погостил у брата, и решил раз уж я в сибири, что почему бы не заехать к своим сетевым(ныне реальным) друзьям-знакомым - заехал!.. после радушного приема и недельного отмакания на даче - все парольные фразы забыл... ВЫВОД: что бы все помнить - не выеживайся!..
В некоторых случаях полезнее использовать препроцессорные выражения а не готовые константы. Это помогает понять, что к чему, и как вычисляется и какие константы участвуют в получаемом значении. Главное не увлекаться.
Чтобы понять, что к чему, специально придумали такую штуку, как комментарии. В которых можно описать все гораздо наглядней и подробней. в этом примере push (76 shr 2) + 1 pop edx ни 76, ни 2, ни 1 не являются исходными данными, от которых нужно было бы вычислять что-то. Исходное число было 20 - количество проходов цикла. Вместо простого mov edx,20 было потрачено время на изобретение этого выражения, неинформативного и нечитабельного. С попутным увеличением размера и времени исполнения кода. Конечная цель - показать "преимущества" великого и могучего фасма
Откуда этот код? Может, выложишь ссылку? А вообще, напоминает код проги, обработанной обфускатором, что очень плохо.
RORK32 Обфускатор для препроцессора ассемблерных листингов в студию! А я уже знаю деобфускатор - любой дизасм