Погружение в технику и философию gdb

       

просмотр реакции отладчика gdb на различные сигналы


Некоторые сигналы (например, сигнал SIGTRAP, возникающий при достижении программной точки останова) отладчик резервирует для своих собственных нужд. Этим обстоятельством пользуются многие защищенные программы, определяющие находятся ли они под отладкой или нет. Они устанавливают свой собственный обработчик SIGTRAP и затем выполняют инструкцию INT 03h. При выполнении без gdb управление получает обработчик, в противном случае сигнал поглощается отладчиком и обработчик уже не получает управление.

В частности, файлы, упакованные протектором burneye содержат следующий код:

 

0x053714a7:   mov    $0x5,%ebx

0x053714ac:   mov    $0x5371a0c,%ecx

0x053714b1:   mov    $0x30,%edx

0x053714b6:   mov    %edx,%eax

0x053714b8:   int    $0x80

0x053714ba:   add    $0x5375a00,%esi

0x053714c0:   mov    %esi,0xfffffd24(%ebp)

0x053714c6:   int3

0x053714c7:   cmpl   $0x0,0x5375748

0x053714ce:   jne    0x53714e2

0x05371a0c:   push   %ebp

0x05371a0d:   mov    %esp,%ebp

0x05371a0f:   incl   0x5375748

0x05371a15:   leave

0x05371a16:   ret



Содержание раздела