http://qs321.pair.com?node_id=138857

arhuman has asked for the wisdom of the Perl Monks concerning the following question:

Despite my searchs on the monastery, I didn't manage to find a precise answer.

So I turn to you enlighten monks :
How could I retrieve the cpu stack address ?
(In last resort, I think I could use INLINE::Asm to do the trick,
but I'd prefer pure Perl or standard module based solutions)

Any (clever) Idea ?
TIA

NOTE : For those of you, who may wonder why I'd need such info, I'd just say that I'm "working" on buffer overflows ;-)


"Only Bad Coders Code Badly In Perl" (OBC2BIP)

Replies are listed 'Best First'.
Re: How to get the (CPU) stack adress ?
by Zaxo (Archbishop) on Jan 15, 2002 at 14:22 UTC

    Inline::ASM would be the best way I know.

    #!/usr/src/perl -w use strict; use Inline ASM => 'DATA', AS => 'as', PROTO => {sptr => 'unsigned long()'}; print 0 | sptr(),$/; # ... __END__ __ASM__ .text .globl sptr sptr: movl %esp,%eax ret

    After Compline,
    Zaxo

      Thanx for your answer !

      But I still hope for another solution,
      as I said in my initial post, pure Perl or standard module based solutions
      (if available) are most welcome !


      "Only Bad Coders Code Badly In Perl" (OBC2BIP)