кто нибуть занимался написанием shared libraries в nasm? проблема следующая - имеем код (как написано в доках по nasm): $ cat intruder.asm BITS 32 SECTION .text extern process_path extern _GLOBAL_OFFSET_TABLE_ %macro get_GOT 0 call %%getgot %%getgot: pop ebx add ebx,_GLOBAL_OFFSET_TABLE_+$$-%%getgot wrt ..gotpc %endmacro update_ebx: global update_ebx:function pushad push ebx get_GOT call process_path wrt ..plt add esp, 4 mov [esp-4*4], eax popad ret $ cat sandbox.c #include <stdio.h> extern char* process_path(char *path) { printf("%s\n", path); return path; } $ gcc -Wall -pedantic -fPIC -c -mtune=i686 -O3 -mmmx -msse -msse2 -malign-double -osandbox.o sandbox.c $ nasm -ointruder.o -f elf intruder.asm $ ld -shared -fPIC -o installtrace.so sandbox.o intruder.o -ldl -lc почему то при запуске функции в этой библиотеке имеем (отладчик самопальный - сильно не ругайте): command = 00e85360, eip = b7ef92a0, ebx = b7f0e747 command = 0000e853, eip = b7ef92a1, ebx = b7f0e747 command = 000000e8, eip = b7ef92a2, ebx = b7f0e747 command = c1c3815b, eip = b7ef92a7, ebx = b7f0e747 command = 10c1c381, eip = b7ef92a8, ebx = b7ef92a7 command = ffff99e8, eip = b7ef92ae, ebx = b7efa368 command = 0010a3ff, eip = b7ef924c, ebx = b7efa368 command = ffffffff, eip = 00000252, ebx = b7efa368 т.е. оно уходит по непонятному адресу - даже в таблице символов он не определен: $ nm installtrace.so 000002a7 t ..@5.getgot 0000137c A __bss_start 000012c0 A _DYNAMIC 0000137c A _edata 000002bf t end 0000137c A _end 00001368 a _GLOBAL_OFFSET_TABLE_ 0000028e t __i686.get_pc_thunk.bx 00000260 T process_path U puts@@GLIBC_2.0 000002a0 t update_ebx Что я делаю не так? :(
Ответ на:
комментарий
от asgard
Ответ на:
что
от anonymous
Ответ на:
комментарий
от generatorglukoff
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от asgard
Ответ на:
комментарий
от generatorglukoff
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум shared libraries (2011)
- Форум shared library (2001)
- Форум share library (2001)
- Форум shared libraries (2004)
- Форум shared libraries (2004)
- Форум Shared Library (2000)
- Форум Shared library (2004)
- Форум Инициализация shared library (2006)
- Форум Makefile.am shared library (2005)
- Форум Ленивое связывание shared library? (2017)