SEOSERVISE - Защита информации.

 
   
 

Главная


 


Обратите внимание на левую верхнюю часть экрана, где содержимое счетчика ко­ манд было заменено шестнадиатеричным представлением 0x64636261 дополнительно переданной строки abed . Теперь, когда процессор находится под контролем, куда можно двигаться дальше? Существует несколько возможностей. Одна из них связана с перемещением стека, но, к сожалению, система Windows не отличается надежностью. Поэтому реализацию та­ кой возможности вряд ли можно считать хорошим выбором. Неплохо было бы обла­ дать информацией о структуре стека или воспользоваться достаточно большой после­ довательностью команд NOOP ( no operation ), что позволило бы достичь цели. Разуме­ ется, желательно получить надежное решение. Второй вариант должен обеспечить переход к процессу или библиотеке DLL , в контексте которых и выполнится код. Обратимся к регистрам и посмотрим, с чем придется иметь дело. Можно быстро определить, что одним из регистров, указывающих на что-либо по­лезное, является ESI , который указывает прямо на буфер. Это можно проверить, вос­ пользовавшись командой d esi в программе Softlcc . Было бы идеально, если бы в па­ мять удалось загрузить фрагмент кода, выполняющий команду call esi или j * p esi . При этом будет выполнен код, расположение которого в памяти определяется этим регистром. Лучше всего непосредственно воспользоваться самим исполняемым кодом, поскольку он остается статическим. Загрузим файл chl 4 server . exe в оболочку W 32 Dasm . С ее помощью сам трюк выпол­нить не удастся, однако определенную пользу все же можно извлечь. Это чрезвычайно быстрое средство, которое идеально подходит для поиска необходимой последовательно­ сти инструкций. Введем строку call esi в окне поиска, как показано на рис. 14.3.

 

 

 

 

 

 
 

1 |2 |3 |4 |5 |6 |7 |8 |9 |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |30 |31 |32 |33 |34 |35 |36 |37 |38 |39 |40 |41 |42 |43 |44 |45 |46 |47 |48 |49 |50 |51 |52 |53 |54 |55 |56 |57 |58 |59 |60 |61 |62 |63 |64 |65 |66 |67 |68 |69 |70 |71 |72 |73 |74 |75 |76 |77 |78 |79 |80 |81 |82 |83 |84 |85 |86 |87 |88 |89 |90 |91 |92 |93 |94 |95 |96 |97 |98 |99 |100 |