Function Hijacking - put_queue

Dieses Thema im Forum "C/C++" wurde erstellt von Lord Kefir, 08.09.2005.

  1. #1 Lord Kefir, 08.09.2005
    Lord Kefir

    Lord Kefir König

    Dabei seit:
    10.06.2004
    Beiträge:
    944
    Zustimmungen:
    0
    Guten Tach!
    Also, ich schreibe gerade ein Kernelmodul, dass die Funktion put_queue quasi abfangen soll. Auf meinem Rechner hat es gestern funktioniert - bei meiner Freundin leider nicht.

    Wenn ich das Modul lade, funktioniert die Kiste noch einwandfrei - allerdings werden auf dem tty keine Zeichen mehr ausgegeben.
    Wenn das Modul beenden wird, klappt alles wieder einwandfrei... vielleicht hat hier ja einer 'ne kleine Idee, woran es liegen könnte:

    Code:
    #include <linux/module.h>
    #include <linux/kernel.h>
    #include <linux/init.h>
    #include <linux/string.h>
    
    #define LICENSE "GPL"
    #define VERSION "0.1"
    #define CODESIZE 7
    #define ADDRESS 0xc027a860; // UNBEDINGT ANPASSEN!!!
     
    // global variables:
    void (*put_queue)(int) = (void(*)(int))ADDRESS;
    
    static char code[CODESIZE];
    static char jump[CODESIZE] =
     "\xb8\x00\x00\x00\x00"
     "\xff\xe0";
    
    // prototypes:
    void _put_queue (int ch);
    
    /* ----------------------------------------------
         function: _put_queue
       ---------------------------------------------- */
    void _put_queue (int ch) {
      printk ("flog: %d\n", ch);
    
      memcpy (put_queue, code, CODESIZE); // restore byte of the original code
      put_queue (ch);   // call function
      memcpy (put_queue, jump, CODESIZE); // re-restore jump code
    }
    
    /* ----------------------------------------------
         function: init_module
       ---------------------------------------------- */
    int init_module (void) {
      printk ("flog version %s: session start\n", VERSION);
    
      *(long*)&jump[1] = (long)_put_queue; // get address
      memcpy (code, put_queue, CODESIZE); // save original code
      memcpy (put_queue, jump, CODESIZE); // set jump code
    
      return (0);
    }
    
    /* ----------------------------------------------
         function: cleanup_module
       ---------------------------------------------- */
    void cleanup_module (void) {
      memcpy (put_queue, code, CODESIZE);
    }
    
    // Macros:
    MODULE_LICENSE (LICENSE);
    
    
    Mfg, Lord Kefir
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Lord Kefir, 08.09.2005
    Zuletzt bearbeitet: 09.09.2005
    Lord Kefir

    Lord Kefir König

    Dabei seit:
    10.06.2004
    Beiträge:
    944
    Zustimmungen:
    0
    Also, es liegt wohl zu 100% an der Adresse. Hat einer 'ne Ahnung, warum die falsch ist? Bin folgend vorgegangen:

    Code:
    lordkefir@linda:~$ grep put_queue /proc/kallsyms
    c027a860 t put_queue
    c02a5700 t cfq_put_queue
    
    Mfg, Lord Kefir
     
Thema:

Function Hijacking - put_queue

Die Seite wird geladen...

Function Hijacking - put_queue - Ähnliche Themen

  1. Php: User defined function inside array

    Php: User defined function inside array: Hi Alle, Ich habe ein Problem mit PHP: habe eine funktion definiert: function test($a1) {return($a1*5);}kann diese auch wie gewohnt als teil...
  2. disable_functions, suhosin.executor.func.blacklist

    disable_functions, suhosin.executor.func.blacklist: Hallo, neben disable_functions gibt es bei aktivierter Suhosin-Extension ja auch die Möglichkeit suhosin.executor.func.blacklist zu nutzen. Hat...
  3. Call to undefined function ImageTTFText()

    Call to undefined function ImageTTFText(): Hallo zusammen, ich verwende OpenBSD 4.4 (incl. dem xbase-Paket) und installiere meine Pakete aus den Ports, ich benoetige die GD-Lib +...
  4. 'libraryname': undefined reference to 'functionname'

    'libraryname': undefined reference to 'functionname': Hallo zusammen, Erst mal das Allgemeine: Ich benutze SuSE 10.3 als Betriebssystem und Eclipse als IDE. Meine C++ Kenntnisse sind nicht wirklich...
  5. PHP5 + MYSQL auf Ubuntu: Fatal Error called to undefined function mysql_connect()

    PHP5 + MYSQL auf Ubuntu: Fatal Error called to undefined function mysql_connect(): Hi all, hab ein dickes Problem was ich selber einfach nicht mehr gelöst bekomme habe mich gestern 3 Stunden durchgegoogelt und verschiedene...