Сейчас на форуме: zds, UniSoft (+5 невидимых)

 eXeL@B —› Программирование —› Не срабатывает точка останова на функцию strcpy. Почему?
Посл.ответ Сообщение

Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 марта 2013 20:54
· Личное сообщение · #1

Учусь программировать на Си в Linux и по чуть-чуть разбираюсь в отладчике gdb, но возникла одна проблема - не срабатывает бряк на функцию strcpy и не могу понять почему (работаю в Debian). Ниже представил свои действия:
Code:
  1. root@kali:~# gcc --o char_array2 char_array2.c
  2. root@kali:~# gdb -./char_array2
  3. Reading symbols from /root/char_array2...done.
  4. (gdb) list
  5. 1   #include <stdio.h>
  6. 2   #include <string.h>
  7. 3   int main() 
  8. 4   {
  9. 5       char str_a[20];
  10. 6   
  11. 7       strcpy(str_a, "Hello, world!\n");
  12. 8       printf(str_a);
  13. 9   
  14. 10      return 0;
  15. 11 }
  16. (gdb) b 6
  17. Breakpoint 1 at 0x8048425: file char_array2.c, line 6.
  18. (gdb) b strcpy
  19. Function "strcpy" not defined.
  20. Make breakpoint pending on future shared library load? (or [n]) y
  21.  
  22. Breakpoint 2 (strcpy) pending.
  23. (gdb) r
  24. Starting program: /root/char_array2 
  25.  
  26. Breakpoint 1, main () at char_array2.c:7
  27. 7       strcpy(str_a, "Hello, world!\n");
  28. (gdb) info b
  29. Num     Type           Disp Enb Address    What
  30. 1       breakpoint     keep y   0x08048425 in main at char_array2.c:6
  31.     breakpoint already hit 1 time
  32. 2       breakpoint     keep y   0xb7edbb75 <strcpy+5>
  33. (gdb) c
  34. Continuing.
  35. Hello, world!
  36. [Inferior 1 (process 5257) exited normally]
  37. (gdb)



В книге "Хакинг. Искусство эксплоита", которую читаю точка останова срабатывает на функции strcpy. А почему у меня не срабатывает? Приму любые версии, даже те что у меня руки кривые.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 19 марта 2013 21:05
· Личное сообщение · #2

Дизасм погляди. Возможно, функа инлайнена.

| Сообщение посчитали полезным: z00t


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 19 марта 2013 21:08
· Личное сообщение · #3

z00t пишет:
Приму любые версии, даже те что у меня руки кривые.


Внимательно читайте сообщения в консоли.

-----
http://ntinfo.biz





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 19 марта 2013 21:26
· Личное сообщение · #4

она не срабатывает потому что она заинлайнилась
Code:
  1. objdump -d char_array2  | grep strcpy


| Сообщение посчитали полезным: z00t
 eXeL@B —› Программирование —› Не срабатывает точка останова на функцию strcpy. Почему?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати