Культурный офтопик
 help / color / mirror / Atom feed
* [room] objdump-дизассемблирование, странные call-конструкции
@ 2006-05-20 21:06 Sergey Stepanov
  2006-05-20 21:31 ` Yuri N. Glibovetz
  0 siblings, 1 reply; 16+ messages in thread
From: Sergey Stepanov @ 2006-05-20 21:06 UTC (permalink / raw)
  To: smoke-room

Здравствуйте товарищи.


Если есть тута программеры, помогите плиз.

Вот мне потребовалось дизассемблировать несколько o-файлов,
и сразу наткнулся на непонятную вещь.

Дизассемблирование провожу через команду objdump -d ./file.o

И вот что вижу в коде (в других функциях тоже есть такие же конструкции)


Код

000012b8 <AllArraysInit>:
     12b8:       55                      push   %ebp
     12b9:       89 e5                   mov    %esp,%ebp
     12bb:       83 ec 08                sub    $0x8,%esp
     12be:       e8 fc ff ff ff          call   12bf <AllArraysInit+0x7>
     12c3:       c7 05 00 00 00 00 01    movl   $0x1,0x0
     12ca:       00 00 00
     12cd:       c7 05 00 00 00 00 01    movl   $0x1,0x0
     12d4:       00 00 00
     12d7:       83 ec 0c                sub    $0xc,%esp
     12da:       6a 01                   push   $0x1
     12dc:       e8 fc ff ff ff          call   12dd <AllArraysInit+0x25>
     12e1:       83 c4 10                add    $0x10,%esp
     12e4:       c7 05 00 00 00 00 00    movl   $0x0,0x0
     12eb:       00 00 00
     12ee:       c7 05 08 00 00 00 0d    movl   $0xd,0x8
     12f5:       00 00 00
     12f8:       c7 05 0c 00 00 00 00    movl   $0x0,0xc
     12ff:       00 00 00
...



Меня беспокоят конструкции "e8 fc ff ff ff". Какой-то странный call, 
который указывает на середину этой же иструкции - по идее, после этой
команды должен начать выполняться код "fc ff ff ff ...". Какой в этом
смысл? Что обозначают эти странные call - вызовы?

Сразу скажу, что исходный текст был написан на чистом C, без всяких
ухищрений в стиле анти-дебуггинга. Сейчас код утерян, а функции нужно
немного изменить, а я не могу начать из-за вот этой непонятки.

Может это какая-то хитрая оптимизация компилера? Тогда какому asm-коду
этоти команды call xxxx эквивалентны?


(В поисковиках нахожу только что народ декомпилирует o-шники
через objdump, что-то там рассматривает, у многих тоже всречается
эта конструкция, но никто не обращает на нее внимания).


-- 
Со всяческими пожеланиями, Сергей.
http://xi.net.ru


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2006-05-23  5:27 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-05-20 21:06 [room] objdump-дизассемблирование, странные call-конструкции Sergey Stepanov
2006-05-20 21:31 ` Yuri N. Glibovetz
2006-05-21  8:57   ` Artem
2006-05-22  9:10     ` [room] objdump- дизассемблирование , странные call- конструкции Sergey Stepanov
2006-05-22 10:19       ` Damir Shayhutdinov
2006-05-22 11:17         ` Sergey Stepanov
2006-05-22 17:12           ` Sergey Stepanov
2006-05-22 17:28             ` Andrey Rahmatullin
2006-05-22 17:44               ` Sergey Stepanov
2006-05-22 17:55                 ` Andrey Rahmatullin
2006-05-22 18:17                   ` Sergey Stepanov
2006-05-22 18:23                     ` Andrey Rahmatullin
2006-05-22 19:00                       ` Sergey Stepanov
2006-05-23  5:27                         ` Andrey Rahmatullin
2006-05-22 17:30             ` Sergey Stepanov
2006-05-22 17:44             ` Damir Shayhutdinov

Культурный офтопик

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/smoke-room/0 smoke-room/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 smoke-room smoke-room/ http://lore.altlinux.org/smoke-room \
		smoke-room@lists.altlinux.org smoke-room@lists.altlinux.ru smoke-room@lists.altlinux.com smoke-room@altlinux.ru smoke-room@altlinux.org smoke-room@altlinux.com
	public-inbox-index smoke-room

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.smoke-room


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git