Суть такова: стек растет от старшего к младшему адресу,соответственоо чтобы обратиться к области стека надо esp+nh, а за пределы можно esp-nh. Вопрос такой в программе в области esp-nh насколько случайна? И как часто меняется? У меня такая проблема неполный блок может состоять в диапазоне 1-7 байтов, его необходимо дополнить, делать ГПСЧ слишком громоздко, а заполнить надо вот и подумал, что стек довольно часто используется, значит часто меняется и решил использовать байты для дополнения блока оттуда! Да на идеальный ГПСЧ это не претендует, но возможно забьется байтами значе- ния которых проследить не так уж и просто.
Разумеется, не случайны. Ниже вершины стека иногда застревают данные, которые использовались в ранее вызванных процедурах. Бывает, что оттуда удается извлечь разные полезные адреса, которые разработчики хотели спрятать от чужих глаз.
CyberManiac Спасибо, что это сказал. Но здесь мне надо дополнить блок всякой лабудой, якобы случайной. Поэтому и подумал на стек. Тогда может заюзать GUID, или и он не очень может подойти?
EvilsInterrupt если тебе нужны более-менее _случайные_ данные, то бери rdtsc/QueryPerformanceCounter (только не целиком, 1-2 бладших байта). Для дополнения блоков при зашифровании данных ИМХО подойжет обычный rand(), т.к.от знания открытого текста атакующий ничего не получит -- стойкие шифры устойчивы к атакам типа 'known plaintext'. Так что, в принципе, можно и нулями дополнять, но это слишком уж неспортивно вообще, ИМХО, в программе шифрования должен быть простенький ГПСЧ -- тебе рано или поздно IV прийдется генерить -- тут использовать нули, стек или rdtsc уже не стоит. Так что возьми напиши RC4 -- просто, компакто, быстро.. позволяет из относительно небольшого кол-ва (псевдо)случайных байт получить неплохую последовательность...
flankerx Да стеком дополню, а при более серьезной задаче все таки ты прав, придется писать ГПСЧ. А здесь линки шифрвать какая разница чем дополнять, все равно текст то короткий
Кстати, в винде есть функции, выдающие последовательности случайных байт. CryptAcquireContext() CryptGenRandom()
Да, у меня и примерчик есть (фасм) - создает файл, нужного размера, с псевдослучайными данными _2071416777__randfile.zip
ТО что я приатачил, еще на стадии разработки, но мне бы хотелось бы услышать ваше мнение по поводу моего проекта, т.к. я его разрабытываею для пополнения коллекции васма _192326702__gost28147_89.rar
RE:Узнать.txt esi,edi,ebp,ebx не меняются после API, можешь их использовать, например вместо ecx, когда в "коде цикла" вызываются api, тогда "push ecx и pop ecx" не нужны, а test ecx,ecx вообще не нужен после dec ecx, я когда-то сам его ставил Например так Код (Text): mov ebp,count test ebp,ebp jz exit round: ... место А ... код цикла ... dec ebp jnz round exit:
bogrus. Неповеришь но в Юрове: Команда loop работает так: 1. Уменьшает на единицу регистр cx/ecx 2. проверяет его на нуль 3. И если не нуль то переход на метку в команде loop слова свои, но смысл тот же! Спец.Справочник по ассемблеру стр.104 Поэтому я и сделал test ecx,ecx! Следовательно: dec ecx test ecx,ecx jz имя метки ; является верным! ;--------------------------------------- То для чего мне нужено аналог loop это алгоритм,который должен работать следующим образом: mov ecx,count round: dec ecx test ecx,ecx jnz round здесь count говорит о том сколько сделать итераций над буфером, оно может быть не NULL!!! но если уж не нуль то цикл выполняется нужно проверить на последнюю итерацию, если да то надо после этой конечной итерации опять!!! опять перейти на выполнение eip = round!!! не хочу делать лишний код после цикла. Если ты глядел проект,то должен был заметить что подопытный делиться на 512байтные куски, а ведь файл может иметь рамер некратным 512!! Вот потому то мне и нужен такой изощренный алгоритм,что бы заставить цикл обрабатывать и не полный блок!!! Надеюсь ты меня понял, я старался описать все технически - грамотно, если что поправь или укажи место, где можно понять двояко. ;-------------------------------------------- Этой прогой я хочу избежать проблемы вареза, выкладывать нельзя Володя голову оторвет, а про шифрограммы он ничего не говорил )) иль я не слышал?