[shellcode/machine code]

Pagina: 1
Acties:

Anoniem: 165232

Topicstarter
...

[ Voor 99% gewijzigd door Anoniem: 165232 op 23-05-2018 15:54 ]


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 08-07 17:10

Gerco

Professional Newbie

Even een schot in het donker, maar is een int geen 4 bytes in 32 bit mode en zou je daarom niet 4 bytes de stack op moeten lopen ipv 2 om het return adres van je main te vervangen?

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Anoniem: 289377

64 of 32 bits?

Verder test ik mijn shellcode altijd met:
code:
1
2
3
4
5
main() {
       int (*ret)();
       ret = shellcode;
       ret();
}


Oja en verder is het hebben van 0-bytes in je shellcode natuurlijk niet zo handig :)

[ Voor 44% gewijzigd door Anoniem: 289377 op 30-09-2010 14:00 ]


Anoniem: 165232

Topicstarter
...

[ Voor 196% gewijzigd door Anoniem: 165232 op 23-05-2018 15:54 ]


Anoniem: 165232

Topicstarter
...

[ Voor 100% gewijzigd door Anoniem: 165232 op 23-05-2018 15:55 ]


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 22-01-2024

Korben

() => {};

Volgens mij moet je eerst even inlezen over pointers en vooral pointers naar functies.

Je declareert een pointer naar een int en vervolgens zet je die naar het adres van zichzelf + 2. Vervolgens zet je de eerste 4 bytes op het adres van ref (+ 2) naar het adres van je shellcode. Einde programma.

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Gebruik de edit knop ( Afbeeldingslocatie: http://tweakimg.net/g/forum/images/icons/edit.gif ) als je iets toe te voegen hebt; je topic herhaaldelijk omhoogschoppen is niet nodig.

[ Voor 24% gewijzigd door RobIII op 30-09-2010 15:49 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 10-07 20:18
Ten eerste werkt 't niet omdat in je programma gedeclareerde data (zoals shellcode) niet in een executable sectie gemapt worden (ja, onder meer om dit soort ongein te voorkomen). Daar kun je omheen werken door het geheugen dynamisch te alloceren met mmap(), maar daar heb je dus niets aan als je een exploit probeert te schrijven die gebruik maakt van een bestaande (non-executable) buffer.

Ten tweede compileert Ubuntu's GCC standaard mét beveiliging tegen stack smashing. Zie hier: https://wiki.ubuntu.com/CompilerFlags
Pagina: 1