User CPFAQMembers ListCalendarToday's PostsSearch




Go Back   Foonews.Net > Newsgroups de.* > de.comp.* > de.comp.lang.assembler.x86

Prova Gratis 30gg l'hosting fooweb
Reply
 
LinkBack Thread Tools Display Modes
 
Old 01-02-06, 12:41 PM
Sebastian Biallas
 
Posts: n/a
Default Re: eine Moeglichkeit %eip ins %eax zu kopieren?

Plagus wrote:
> Hallo Leute,
>
>

[..]
> Wie es
> sich rausstellte war diese auch nicht so schwer und bevor ich die
> Antworten von euch gelesen habe wurde sie so geloest:
>
> Programmzaehler ins %eax kopieren:
>
> push %eip
> pop %eax


"push %eip" ist aber keine gültige x86-Anweisung, höchstens ein Alias
auf ein "call" auf die nächste Adresse.

> Gruss
> Plagus


--
Gruß,
Sebastian
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
 
Old 03-02-06, 11:20 AM
Florian Weimer
 
Posts: n/a
Default Re: eine Moeglichkeit %eip ins %eax zu kopieren?

* Jan Bruns:

>> (Und es wird in der Tat um position independent code gehen, IA32 hat
>> leider keine IP-relative Adressierung für Daten.)

>
> Wie schon andere geschrieben haben:
> Üblicher ist es, zum Relozieren von Code einfach alle CS-
> Referenzen anzupassen.


Nö, ELF arbeitet nun einmal anders und erfreut sich einer gewissen
Verbreitung.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Try the foonews Toolbar!!!
 
Old 14-09-06, 05:24 PM
Markus Wichmann
 
Posts: n/a
Default Re: eine Moeglichkeit %eip ins %eax zu kopieren?

Sebastian Biallas schrieb:
> Plagus wrote:
>> Hallo Leute,
>>
>>

> [..]
>> Wie es
>> sich rausstellte war diese auch nicht so schwer und bevor ich die
>> Antworten von euch gelesen habe wurde sie so geloest:
>>
>> Programmzaehler ins %eax kopieren:
>>
>> push %eip
>> pop %eax

>
> "push %eip" ist aber keine gültige x86-Anweisung, höchstens ein Alias
> auf ein "call" auf die nächste Adresse.
>
>> Gruss
>> Plagus

>


Ich persönlich würde es mit

call $+2
pop eax

was ja in Abgewandelter Form schon mehrmals vorgeschlagen wurde,
probieren ($ ist die momentane Stelle in diesem Abschnitt vor diesem
Befehl. $$ ist der Anfang dieses Abschnittes.) Sollte der Opcode von
call doch länger sein als zwei Byte, muss man das natürlich entsprechend
anpassen.

--
To err is human. To forgive is divine.
To forget is also human...
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



 RSS Feeds - Archive - Top




All times are GMT +1. The time now is 11:43 PM. Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 Forum style by ForumMonkeys.com.