immunity debugger und python

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
tomycat
User
Beiträge: 26
Registriert: Samstag 31. August 2019, 15:27

hallo,
ich arbeite mich gerade in immunity debugger ein.
Ein tolles script soll mir helfen Adressen auszulesen.
Ich weis, es passiert auf Python 2.5

Ja, es ist alt.
Ich teste es auf einer Win 7 SP1 (ohne Updates) Maschine.

Code: Alles auswählen

from immlib import *

def main(args):

    imm          = Debugger()
    search_code  = " ".join(args)

    search_bytes   = imm.Assemble( search_code )    
    search_results = imm.Search( search_bytes )

    for hit in search_results:

        # Retrieve the memory page where this hit exists
        # and make sure it's executable
        code_page   = imm.getMemoryPagebyAddress( hit )
        access      = code_page.getAccess( human = True )

        if "execute" in access.lower():
            imm.log("[*] Found: %s (0x%08x)" % ( search_code, hit ), address = hit )


    return "[*] Finished searching for instructions, check the Log window."
TraceBack(most recent camm last):
File C:\....py lin8, in main
search_bytes = imm.Assemble( search_code)
AttributeError: Debugger object has no attribute Assemble
Idee?
Benutzeravatar
Dennis89
User
Beiträge: 1156
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

ist das die Datei, die du importiert hast?
https://github.com/kbandla/ImmunityDebu ... /immlib.py

Wenn ja, ich kann in der Klasse 'Debugger' keine 'Assemble'-Funktion finden, aber so etwas ähnliches. 'assemble'.

Benutze bitte keine *-Importe. Damit holst du dir alle Namen unkontrolliert in deinen Namensraum. Das macht es sehr unübersichtlich und kann zu Namenskonflikten führen

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@tomycat: Warum heisst das `Debugger`-Exemplar `imm`? Das ist eine ziemlich komische, kryptische Abkürzung.

Wenn man Namen ändert, sieht man auch gleich warum dieses Gleichheitszeichen ausrichten keine so gute Idee ist: Es macht unnötig Arbeit beim Verändern von Code, weil man mindestens in der gleichen Zeile aufpassen muss, das die Ausrichtung danach immer noch stimmt. Und wenn es blöd läuft, muss man auch noch andere Zeilen anpassen, in denen sich aber inhaltlich eigentlich gar nichts geändert hat. Trotzdem tauchen die im Diff auf, und man muss erst genau hinschauen was sich wirklich verändert hat, und was nur Kosmetik ist.

Bei `Search()` hast Du dann das gleiche Problem: Die Methode heisst `search()`.

`hit` ist ein komischer Name für eine Speicheradresse.

Code: Alles auswählen

from immlib import Debugger


def main(args):
    debugger = Debugger()
    search_code = " ".join(args)
    for address in debugger.search(debugger.assemble(search_code)):
        if "EXECUTE" in (
            debugger.getMemoryPagebyAddress(address).getAccess(human=True)
        ):
            debugger.log(
                "[*] Found: %s (0x%08x)" % (search_code, address),
                address=address,
            )

    return "[*] Finished searching for instructions, check the Log window."
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
tomycat
User
Beiträge: 26
Registriert: Samstag 31. August 2019, 15:27

thx all,

Der Abgeänderte Code von __blackjack__ läuft, es kommt kein Fehler, aber das Display Fenster ist leer.
der Original Code ist nicht von mir :-)
Warum ist Assemble groß geschrieben? Das macht mir echt Kummer :-(
War das mal früher anders? Z.B. Bei Win XP ?

In dem Buch "Netzkerkprogrammieren unter unix" werden eigene Funktion in Großbuchstaten geschreiben. Z.B. Send. Aber in der Funktion Send kommt send vor. Ist das hier auch vielleicht so?

Wie komme ich heruaus was z.B. .assemble in Immunity debugger macht ?

Das Buch liegt mir stark am Herzen ist aber ca. 10 Jahre alt. Ich habe Extra Win 7 Sp1 ( 32 Bit ) ohne Update installiert?
Benutzeravatar
Dennis89
User
Beiträge: 1156
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,
tomycat hat geschrieben: Donnerstag 22. April 2021, 18:55 Wie komme ich heruaus was z.B. .assemble in Immunity debugger macht ?
Öffne meinen Link und suche in der Klasse 'Debugger' nach der Funktion 'assemble'. Dass ist die Funktion die ausgeführt wird, wenn du in deine Code 'assemble' aufrufst.
Ist dir klar, wie das mit den Importen abläuft?

Was du mit dem 'send' meinst verstehe ich nicht ganz. Aber die Schreibweise wie sie hier beschrieben wurde kannst du offiziell hier nachlesen:
https://www.python.org/dev/peps/pep-0008/

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Sollte in deinem Buch nicht beschrieben sein, was du da tust? Und ich habe beim suchen auch eine Version des imm gefunden, der Assemble groß geschrieben hat. KA ob die älter oder neue als die jetzige ist. Und einen tieferen Grund bzw. ein System gibt es da nicht. Es ist einfach nur inkonsistent.
tomycat
User
Beiträge: 26
Registriert: Samstag 31. August 2019, 15:27

thx,
https://github.com/shichao-an/unpv13e/b ... l/lsif01.c
ich Zeile 18 wird Ioctl groß geschrieben, aber in der Headerdatei wird Ioctl nochmals aufgeliestet und dann kleingeschrieben.

Zum Buch: Leider sehe ich nicht die Version von dem Debugger, aber die reden von Python 2.5
Mit welcher immunity Debugger Version gibt es einen Assemble mit grossem A ?

Ich habe den Buchautor angeschrieben, aber noch keine Antwort bekommen. Ich denke mal, das ich bekomme keine Antwort :-(
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Keine Ahnung was das für Code ist, aber ich habe noch nie ein ioctl mit großem I gesehen.

Ich habe einfach nur nach dem debugger und assemble gesucht. Aber ob das einen Unterschied macht? Das ist doch prinzipiell das gleiche Ding.

Ich glaube aber nicht, dass du hier groß weiterkommst. Das ist alles veralteter Kram. Such dir aktuelleres. Ja, auch wenn dann dein “wie lerne ich hacken” Buch auf dem Altpapier landet. Oder nur als Ideengeber dienen kann.
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Das sind offenbar Fehler im Buch zum Quelltext. Da steht im Code im Buch beispielsweise `Ioctl` und im Text der den Code erklärt steht dann `ioctl`.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten