Сейчас на форуме: _MBK_, asfa (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Бряки в GDB
Посл.ответ Сообщение

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

Создано: 24 мая 2009 06:05
· Личное сообщение · #1

Кто работал с отладчиком gdb под никсы...Вопрос такой...
Есть простенький код :

#include <stdio.h>

main(int argc, char *argv[])
{
printf("Hello All\n");
printf("Argument is: %s\n", argv[1]);
}

скомпилили(под названием test) и запустили...все работает

отдизасмили...основной кусок:
_main:
00001fa6 55 pushl %ebp
00001fa7 89e5 movl %esp,%ebp
00001fa9 53 pushl %ebx
00001faa 83ec14 subl $0x14,%esp
00001fad e800000000 calll 0x00001fb2
00001fb2 5b popl %ebx
00001fb3 8d832f000000 leal 0x0000002f(%ebx),%eax
00001fb9 890424 movl %eax,(%esp)
//наша первая функция
00001fbc e849100000 calll 0x0000300a _puts
00001fc1 8b450c movl 0x0c(%ebp),%eax
00001fc4 83c004 addl $0x04,%eax
00001fc7 8b00 movl (%eax),%eax
00001fc9 89442404 movl %eax,0x04(%esp)
00001fcd 8d833a000000 leal 0x0000003a(%ebx),%eax
00001fd3 890424 movl %eax,(%esp)
//и вторая
00001fd6 e82a100000 calll 0x00003005 _printf
00001fdb 83c414 addl $0x14,%esp
00001fde 5b popl %ebx
00001fdf c9 leave
00001fe0 c3

запускаем в gdb(gdb test), ставлю бряку на адрес 1fd6(функция _printf интерисуемая) break 0x1fd6 запускаем в отладчике, прога отрабатывает но не останавливается по адресу бряки.
Подскажите почему не прерывается работа проги по бряке???



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

Создано: 25 мая 2009 12:09
· Личное сообщение · #2

С бряками разобрался..такая трабла...

Как пропатчитьбинарик???

В бинарике есть две фунции
//наша первая функция
00001fbc e849100000 calll 0x0000300a _puts
//и вторая
00001fd6 e82a100000 calll 0x00003005 _printf

...открываю в hex редакторе ищем наш адрес puts (1fbc) а какая то фигня..толи его нет толи он какой то модифицированный...Цель у меня найти адрес первой функции в бинарике и заменить на jmp 00001fd6
Тоесть доходя до 00001fbc, а там не call puts, а jmp 00001fd6 и срабатывает только один printf...Помогите разобраться...


//наша первая функция
00001fbc e849100000 calll 0x0000300a _puts

//и вторая
00001fd6 e82a100000 calll 0x00003005 _printf



Ранг: 210.5 (наставник), 2thx
Активность: 0.140
Статус: Участник

Создано: 25 мая 2009 14:19
· Личное сообщение · #3

RAW м VA адреса разные должны быть



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

Создано: 25 мая 2009 14:29
· Личное сообщение · #4

Как найти нужный мне адрес в бинарике???


 eXeL@B —› Вопросы новичков —› Бряки в GDB
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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