einbinden vom c und c++

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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Montag 7. April 2008, 17:45

sechsrad hat geschrieben:aha, bei "from ctypes import *" wird dieses "ctypes" automatisch angenommen und es kommt dann die fehlermeldung wenn ich es davor setze und bei "import ctypes" muss ich es jedesmal davorschreiben.

Ja, daher sollte man es eben nicht machen. Um die Übersicht zu bewahren.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

Beitragvon ne0h » Montag 7. April 2008, 18:01

Lies mal den Artikel "Mifare-Funkchip geknackt" in c't 8/2008 (das ist die aktuelle) auf S. 80 durch (kann ich übrigens auch allen anderen empfehlen). Der ist super gemacht und zeigt wie sie Hardware-Reverse-Engineering gemacht haben. Natürlich, das war sicherlich mehr Aufwand als wie das im Artikel klingt, aber trotzdem - mit genügend Motivation (und die kann durchaus gegeben sein, wenn man sieht, wo die Mifare Classic überall eigesetzt wird) ist so etwas durchaus zu schaffen. Klar dass das schon einiges an Vorwissen benötigt, aber das ist nun mal mit allem so


Den Artikel habe ich auch zuletzt gelesen, wirklich schön, wie die Jungs dort das Ganze auseinandergenommen haben.


@sechsrad

Sorry, aber Deine ganzen Begriffe sind einfach nur zusammengewürfelt, ich habe auch danach gegoogelt und nichts sinnvolles dazu gefunden.

Des weiteren würde mich mal interessieren, wie Du die Leistung deines Pythoncodes analysiert hast und wie Du feststellst, dass Dein Pythoncode langsamer ist als Deine C-Implementierung ?

Wo genau macht Python denn bei Deinem Projekt schlapp? Hast Du NumPy und andere Möglichkeiten eingesetzt, die auch schon hier gepostet wurden?

Hast Du schon versucht, Deinen Pythoncode zu optimieren?


ne0h
sechsrad
User
Beiträge: 173
Registriert: Montag 31. März 2008, 17:09

Beitragvon sechsrad » Montag 7. April 2008, 18:32

Ja, daher sollte man es eben nicht machen. Um die Übersicht zu bewahren.


also mit "import ctypes"

mfg
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Montag 7. April 2008, 18:36

sechsrad hat geschrieben:
Ja, daher sollte man es eben nicht machen. Um die Übersicht zu bewahren.


also mit "import ctypes"

Richtig. Du kannst dem zwar einen Alias geben, aber mir fällt kein brauchenares Kürzel ein. Alternativ kannst du auch die Namen die du benötigst einzeln importieren, das ist im Fall von ctypes wohl auch ein brauchbarer Ansatz. Also mit ``from ctypes import pointer, cdll`` usw.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
lunar

Beitragvon lunar » Montag 7. April 2008, 18:58

Leonidas hat geschrieben:
lunar hat geschrieben:Ich bestreite ja nicht, dass Reverse Engineering möglich ist, aber ich bestreite, dass es einfach ist und "recht gut" funktioniert ;) In solche Keygeneratoren und Cracks steckt nämlich verdammt viel Arbeit, und oft braucht es ein paar Monate intensiver Arbeit, bis solche Algorithmen gebrochen sind.

Lies mal den Artikel "Mifare-Funkchip geknackt" in c't 8/2008 (das ist die aktuelle) auf S. 80 durch (kann ich übrigens auch allen anderen empfehlen). Der ist super gemacht und zeigt wie sie Hardware-Reverse-Engineering gemacht haben. Natürlich, das war sicherlich mehr Aufwand als wie das im Artikel klingt, aber trotzdem - mit genügend Motivation (und die kann durchaus gegeben sein, wenn man sieht, wo die Mifare Classic überall eigesetzt wird) ist so etwas durchaus zu schaffen. Klar dass das schon einiges an Vorwissen benötigt, aber das ist nun mal mit allem so :)

Was anderes habe ich ja auch gar nicht gesagt ;) Allerdings sind Vorwissen und Motivation für viele ausreichend große Hürden, vor allem, wenn das benötigte Vorwissen sehr umfangreich ist, und die Motivation lang anhalten muss ;) Beides ist beim Reverse Engineering eher Regel denn Ausnahme... insofern kann man schon davon sprechen, dass Reverse Engineering von Binärkompilaten wesentlich aufwendiger ist als das von Byte-Code. Nichts anderes wollte ich sagen ;)

Also lassen wir das jetzt, dass ist eh OT ;)
sechsrad
User
Beiträge: 173
Registriert: Montag 31. März 2008, 17:09

Beitragvon sechsrad » Montag 7. April 2008, 19:23

ctypes


wie kann ich die namen von ctypes oder auch anderen modulen zb auflisten um sie mal kennenzulernen?
mfg
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Montag 7. April 2008, 19:37

``dir(ctypes)``.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Beitragvon Sr4l » Montag 7. April 2008, 19:38

sechsrad hat geschrieben:
ctypes


wie kann ich die namen von ctypes oder auch anderen modulen zb auflisten um sie mal kennenzulernen?
mfg


Das Python Tutorial schadet nie.
( http://docs.python.org/tut/tut.html )

Aber ich verrate es dir ausnahmsweise mal direkt:

Code: Alles auswählen

>>> dir(ctypes)
['ARRAY', 'ArgumentError', 'Array', 'BigEndianStructure', 'CDLL', 'CFUNCTYPE', 'DEFAULT_MODE', 'DllCanUnloadNow', 'DllGetClassObject', 'FormatError', 'GetLastError', 'HRESULT', 'LibraryLoader', 'LittleEndianStructure', 'OleDLL', 'POINTER', 'PYFUNCTYPE', 'PyDLL', 'RTLD_GLOBAL', 'RTLD_LOCAL', 'SetPointerType', 'Structure', 'Union', 'WINFUNCTYPE', 'WinDLL', 'WinError', '_CFuncPtr', '_FUNCFLAG_CDECL', '_FUNCFLAG_PYTHONAPI', '_FUNCFLAG_STDCALL', '_Pointer', '_SimpleCData', '__builtins__', '__doc__', '__file__', '__name__', '__path__', '__version__', '_c_functype_cache', '_calcsize', '_cast', '_cast_addr', '_check_HRESULT', '_check_size', '_ctypes_version', '_dlopen',  ........]
>>> x = "lol"
>>> dir(x)
[ ..... 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', ..... ]
>>>


PS: hätte ich noch einmal mehr in diesem Thread das Wort "(nicht)fachleuten" gelesen, hätte ich nicht geantwortet.
sechsrad
User
Beiträge: 173
Registriert: Montag 31. März 2008, 17:09

Beitragvon sechsrad » Montag 7. April 2008, 19:58

also ich progge mit dem editor "drpython"

wenn ich den befehl dort eingebe und mit "run" starten möchte, passiert nichts.
wie kann ich es dort auflisten?


mfg
Zuletzt geändert von sechsrad am Montag 7. April 2008, 20:00, insgesamt 1-mal geändert.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Beitragvon Sr4l » Montag 7. April 2008, 20:00

die Ausgabe kommt natürlich nur im interaktiven Interpreter.
Wenn du es in einer .py Datei schreibst muß ein ``print`` davor.

Ist das die Lösung?
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

Beitragvon ne0h » Montag 7. April 2008, 20:01

Du musst in der Shell Python starten (also in den interaktiven Modus wechseln) und dort dir(ctypes) eingeben.


ne0h
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Beitragvon audax » Montag 7. April 2008, 20:09

So ist das eben mit Nichtfachleuten...
sechsrad
User
Beiträge: 173
Registriert: Montag 31. März 2008, 17:09

Beitragvon sechsrad » Montag 7. April 2008, 20:14

werde für so etwas den "idle" nehmen.

mfg
EyDu
User
Beiträge: 4868
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Beitragvon EyDu » Montag 7. April 2008, 20:25

na siehste, geht doch. das kommt davon wenn man mit nichtfachleuten redet. ;-)

Sorry, aber den konnte ich mir jetzt nicht verkneifen.
sechsrad
User
Beiträge: 173
Registriert: Montag 31. März 2008, 17:09

Beitragvon sechsrad » Montag 7. April 2008, 20:25

also geht auch nicht.

wenn ich dir() eingebe werden 3 namen aufgelistet.
bei dir(ctypes) kommt "NameError: name 'ctypes' is not defined"
obwohl ich ja eben mit der "ctypes" gearbeitet habe.
bei "dir(math)" kommt die gleiche fehlermeldung, obwohl ich eben gerade sinus getestet hatte mit import math.

hmmm.

mfg

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder