1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Andy

Beiträge von Andy

  • Steganografie mit ASM und AutoIt

    • Andy
    • 19. April 2014 um 10:10

    Hi,

    Zitat

    Ich habe mein Problem jetzt lösen können, mein Programm funktioniert!

    DAS ist genau der Grund, wieso du sehr entspannt über

    Zitat

    Dein zweiter Vorschlag mit der Maske und der Verknüpfung erscheint auch logisch, aber den habe ich bis jetzt noch nicht umgesetzt.

    nachdenken kannst ;)

    Zitat

    Gibt es irgendwelche Nachteile bei der Verwendung des Stacks oder weshalb soll ich mir die push und pops sparen? Ich möchte deinen Tipp nicht ablehnen, mich interessiert nur der Unterschied zwischen den beiden Methoden.

    Naja, der "wirkliche" Grund ist natürlich völlig jenseits von Gut und Böse. Geschwindigkeit und Übersicht. Über die paar Takte, die das Speicherinterface bei PUSH/POP länger braucht, und mit dem Hintergrund, dass Assembler sowieso für die meisten sog. "Programmierer" völlig daneben und nicht lesbar ist, KÖNNTEST du das natürlich so lassen.
    Die Intension, Assembler zu nutzen ist imho aber, möglichst schnellen und kurzen Code zu erstellen.
    Und da ist jedes "unnötige" PUSH/POP ein Dorn im Fleisch :D
    Du hast auch keinerlei sog. Register-Pressure, d.h. du hast noch einige der Prozessorregister übrig, um darin Zwischenergebnisse zu puffern.

    Btw. leider funktioniert bei mir unter Win7/64 und 3.3.10.2 der in Assembleit integrierte Debugger nicht mehr. Das ist natürlich besonders ärgerlich, ich vermute wieder mal einige "Script breaking changes" in den bisher funktionierenden Funktionen...
    //EDIT schon übel, wenn man seine eigenen Programme nicht mehr bedienen kann, hab das

    [autoit]

    _("org " & FasmGetBasePtr($Fasm))

    [/autoit]

    vergessen :rolleyes:

  • Revision Demoparty 2014 Streams'n'Tools (und allgemeine Demoparty Diskussion)

    • Andy
    • 18. April 2014 um 19:20
    Zitat

    Leuten draußen beim Fressen zusehen:

    da könnt ihr u.a. mich auch am Sonntag bewundern, ich winke dann mal in die Kamera.
    Irgendwer hier im Forum hatte doch AutoIt-T-shirts, ob man die bis Sonntag nach Saarbrücken bekommt? Hab das mal wieder verpennt...

  • Admin-Geburtstag

    • Andy
    • 18. April 2014 um 13:10

    Glücklichen Herzwunsch und alles Gute, neuer Cheffe :thumbup:

  • Steganografie mit ASM und AutoIt

    • Andy
    • 18. April 2014 um 12:35

    Hi,
    schöne Idee, die Steganographie in Assembler umzusetzen!

    Nach etwas debugging einige Tips:

    - Wenn du mit Bytes bspw aus einem String arbeitest, kannst du diese per "movsx edx, byte[adresse]" "movzx edx, byte[adresse]" (löscht die oberen 3 bytes = zero extension ! ) direkt ansprechen. Dann musst du auch nicht darauf achten (wie in deinem String) über das Ende der Stringstruct hinaus den Speicher auszulesen, das kann in die Hose gehen, wenn dieser Speicherbereich reserviert ist!

    - Maskiere die Bits bspw. des Buchstabens direkt in ein DWORD. Das heisst, schreibe die Bits von bspw
    "A" = chr(65) = 10000001 so in ein
    DWORD BGRA 00000001|00000000|00000100|11111111,
    dass du per AND einfach das ürsprüngliche Pixel mit dem DWORD verknüpfen kannst!
    Damit sparst du dir die PUSH/POPs.

    - Du bearbeitest, wenn du den String in ein DWORD einliest, das LETZTE Byte! Das heisst, bei dem zweiten, dritten und vierten Byte liest du immer nur NULL ein!
    Somit wird in deinem Beispiel nur ein Byte (das erste) "abgespeichert"!
    Anpassen könnte man das, indem man einfach 3 NullBytes (oder irgendetwas anderes) vor den String schreibt^^

    [autoit]

    $sString = chr(0)&chr(0)&chr(0)&chr(0)&chr(0)&chr(0)&chr(255);"ABCD" ; String, der versteckt werden soll
    $String = DllStructCreate ("char[" & ($iWidth * $iHeight) +4 & "]") ; DLL-Struct für den String erstellen (für jeden Pixel ein Byte)
    ;~ $bBinary = StringToBinary ($sString) ; String in binär umwandeln
    ;~ ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $bBinary = ' & $bBinary & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    DllStructSetData ($String, 1, $sString) ; DLL-Struct füllen

    [/autoit]

    macht dein Script lauffähig!

  • Das Einheitsgesicht

    • Andy
    • 17. April 2014 um 07:32

    Habe zzt nicht viel Freizeit, aber interessant ist diese Geschichte schon^^
    Google Bildersuche mit "Passfoto" fördert auf der ersten Seite ca. 400 Bilder, die hab ich mir schonmal abgespeichert. Die Hälfte kann man aussortieren, da keine Frontalansicht.
    Schön wäre jetzt ein "GesichtgeraderückundindiePassfoto-Schablonezentrier-Programm. Natürlich in AutoIt 8o
    Kanten detektieren geht per Sobel-Operator, Augen finden sollte auch kein Ding sein, da hatte ich vor Jahren schon mal etwas gepostet, sollte man finden können.
    Die "Einheitsbilder" dann übereinander zu legen ist auch nur noch eine Übung für Grafik-Anfänger.

    Zitat

    Das Programm würde ich mit einer Art Datenbank von Merkmalsausprägungen füttern. Nehmen wir z.B. die Kinnform. Diese kann man auf eine Linie reduzieren. Dann kann man viele verschiedene Varianten erstellen, wie ein Kinn geformt sein kann.

    Genau das ist das Problem....
    Pickel, Brillen, Augenfarbe usw. (das ist genau DAS, was eine Persönlichkeit ausmacht ! ) willst du bewusst ausklammern, um dann willkürlich "das" Kinn, "die" Nasen/Augenform zu bewerten ;)

  • Das Einheitsgesicht

    • Andy
    • 15. April 2014 um 22:23

    Hi,
    bei den geposteten Links wird das dargestellte "Durchschittsgesicht" natürlich nach tausenden Bildern mit ebenso tausend Filtern "hingebogen". Selbstverständlich entsteht, wenn man die einzelnen Pixel betrachtet, als Gesamtbild aller Gesichter nur ein Brei, bzw. eine schemenhafte "Maske".
    Man stelle sich vor, ich fotografiere tausend Bäume und als Ergebnis einer Berechnung entsteht der "Durchschnittsbaum". Als klare Kontur mit klar ersichtlichen einzelnen Blättern und einem Stamm mit klar strukturierter Borke! Das funktioniert nur dann, wenn ich bei der Berechnung eindeutige Vorgaben mache. Und in diesem Augenblick wird natürlich das, was ich als Programmierer als wichtig erachte, im Ergebnis auch besonders gewichtet.
    Mit den Gesichtern ist das natürlich genauso!

    Angenommen, 50% der abgebildeten Personen tragen eine Brille, trägt dann das "Durchschnittsgesicht" eine Brille oder nicht? Wenn 50% der Personen grüne Augen haben und 50% braune, sind dann die Augen des "Durchschnittsgesichts" grün, braun, oder grünbraun?
    Ein Witzbold könnte jetzt sagen, ein Auge grün, das andere braun, aber wäre das falsch?
    Sobald ich als Programmierer aus vielen unterschiedlichen Vorgaben eine Vorschrift zur klaren und eindeutigen Darstellung erstelle, beeinflusse ich natürlich das Ergebnis!

    Daher sehe ich ein so "errechnetes" Durchschnittsgesicht als eins von tausenden...

  • Berufsunfähigkeitsversicherung als Selbständiger Informatiker, geht das ?

    • Andy
    • 15. April 2014 um 19:57

    Hi,

    ich hatte "natürlich" auch als Selbstständiger eine Berufsunfähigkeitsversicherung, in welche kräftig Beiträge eingezahlt wurden.
    Als dann nach 15 Jahren auch bei mir nach mehreren Warnschüssen aus gesundheitlichen Gründen das Licht ausging, habe ich natürlich auch meine Berufsunfähigkeitsversicherung angefragt, was Sache ist.
    Dort bekam ich eine ernüchternde Auskunft:
    Die Berufsunfähigkeitsversicherung bezahlt so lange nichts, bis definitiv fest steht, dass du tot bist!
    In meinem Fall wurde mir mitgeteilt, dass ich als "gelernter" Ingenieur auch mit schwersten halbseitigen Lähmungen nach einer entsprechenden Umschulung arbeitsfähig sei! Im O-Ton (und so etwas vergisst man sein Leben lang nicht) hiess es:"Sie sind doch Techniker, auch mit einer Querschnittlähmung könnten Sie bspw. Dokumentationen erstellen, in Lehrberufen tätig sein und überwiegend mehr geistige und konstruktive Tätigkeiten ausführen. Sie müssen ja kein Handwerk mehr ausführen..."
    Die Umschulung wird bezahlt, monetär bekommst du natürlich keinen Pfennig, wieso auch, nach der Umschulung bist du ja nicht mehr Berufsunfähig! DAS bringt dir eine Berufsunfähigkeitsversicherung!

    Keine 5 Minuten später hatte ich natürlich diese "Versicherung" gekündigt. Inclusive sämtlicher anderen Versicherungen bei diesem Unternehmen. Der Versicherungsvertreter, der sich u.a. auch durch die mehreren zehntausend Euros an Provision nur durch mich (!) dumm und dämlich verdient hat, ward nie mehr gesehen. Vorher hatte er immer regelmäßig angerufen um "Neuigkeiten" und besondere Versicherungsangebote anzupreisen...

  • Controlsend

    • Andy
    • 8. April 2014 um 18:10

    Hi,
    dann zeig mal bitte die komplette Ausgabe des AutoIt-Window-Info-Tools

  • Button verschwindet nachdem ich die Fenstergröße mit minimieren und maximieren geändert habe.

    • Andy
    • 8. April 2014 um 13:17

    Hi,

    Zitat

    Wenn ich maximiere / minimiere, verschwinden die Buttons.

    Bei diesen Statements bitte die verwendete Windows-Version und die AutoIt-Version angeben!
    Bei mir Win7 / 3.3.10.2 bleiben die Buttons übrigens erhalten...

  • arraymore.au3 - Fehler?

    • Andy
    • 7. April 2014 um 13:30
    Zitat

    Ja, das sind die Dinge, die ich an AutoIt wirklich hasse: der fehlende NULL-Wert. Inzwischen gibt es zwar einen NULL-Wert, aber nur als Keywort, nicht als echtes NICHTS.

    Naja, dazu muss man sagen, dass NULL auch in anderen Sprachen nur dann NICHTS ist, wenn man das explizit vorher festlegt.
    Vergleiche mal diverse Datentypen (Float/Long/bool/Boolean/Int64 uswusf) mit NULL, da tun sich Abgründe auf...vor allem, wenn es um selbst definierte Datentypen geht.
    Dann lieber bei Strings auf "" testen und bei Zahlen/Ziffern auf 0 bzw 0.0.
    Sicher ist Sicher, auch im Hinblick auf ggf. kommende "Updates" in denen dann die Funktion "nicht so ganz abwärtskompatibel aber im Sinne von M$ gefixt" wurde (vgl. AutoIt :huh: )

  • Möglichkeiten externe Scripts in laufende .Exe einzubinden?

    • Andy
    • 5. April 2014 um 17:34

    Hi,

    Zitat

    Der Thread Autor sprach aber eigentlich mehr vom interpretieren einzelner injizierte Code Abschnitte und nicht von kompletten Scripten. Das kann man durch die vorsichtige Nutzung dieser Funktionen erreichen:

    und genau deshalb habe ich den o.g. Vorschlag gemacht 8)
    Wie man sieht, war ich auf dem richtigen Dampfer....

    Es besteht keine einziger Grund, in einem "normalen" Programm irgendwelche " Funktionen" in ein laufendes Script zu includen! Oder doch? :rofl:

  • Möglichkeiten externe Scripts in laufende .Exe einzubinden?

    • Andy
    • 5. April 2014 um 13:08

    In jedem zur EXE kompilierten AutoIt-Script befindet sich das Script und auch der Interpreter.
    Somit kann der Interpreter jeden externen AutoIt-Source direkt aus der Datei ausführen....

    [autoit]

    Run('"' & @AutoItExe & '" /AutoIt3ExecuteScript "' & @ScriptDir & $Sourcefile & ".au3" & '"')

    [/autoit]
  • Datei in Zwischenablage bringen

    • Andy
    • 4. April 2014 um 17:18

    In AutoIt ist diese Frage eher akademischer Natur, da man Dateien mit einfachen Filecopy() verschieben kann...

  • Schon wieder grafische Spielereien ;)

    • Andy
    • 4. April 2014 um 17:00
    Spoiler anzeigen
    Code
    ! write[string]  1964.24 zeit   1.31 x langsamer
    - write[index]   1608.40 zeit   1.07 x langsamer
    > write[object]  1504.95 zeit   1.00 x langsamer
    
    
    ! read[string]  1681.62 zeit   1.61 x langsamer
    - read[index]   1492.16 zeit   1.43 x langsamer
    > read[object]  1045.27 zeit   1.00 x langsamer
    
    
    - add[string]  3407.54 zeit   1.01 x langsamer
    ! add[index]   5038.79 zeit   1.49 x langsamer
    > add[object]  3385.74 zeit   1.00 x langsamer
    
    
    ! write array[string]  3536.83 zeit   1.19 x langsamer
    > write array[index]   2961.10 zeit   1.00 x langsamer
    - write array[object]  3370.03 zeit   1.14 x langsamer
    
    
    - read array[string]  2223.54 zeit   1.11 x langsamer
    > read array[index]   1995.67 zeit   1.00 x langsamer
    ! read array[object]  3865.46 zeit   1.94 x langsamer
    Alles anzeigen


    na klasse, objekt scheint vorne zu liegen, solange man die Daten nicht braucht :rofl:
    Ich bleibe bei den Indexen...

  • Kompilierte EXE mit 3.3.10.2 reagiert sehr langsam

    • Andy
    • 3. April 2014 um 22:44

    Hi,

    Zitat

    Da stellt sich mir die Frage wieso du umgestiegen bist.

    Richtig, die erste Programmiererregel wurde verletzt: " Never change a running system!"
    Was nämlich garnicht stimmt ist:

    Zitat

    Das Programm schien ja auch vorher schon zu laufen, also kann es ja nicht an den Neuerungen der aktuellen Version liegen

    Falsch, es wird keine Stable-Version in der Geschichte von AutoIt gegeben haben, die größere Probleme gemacht hat!
    U.A. gibt es jetzt einige "Features" in den TCP-Funktionen, die nun auf funktionierende Timeouts reagieren. Sehr fein, wenn man das im "alten" Script nicht berücksichtigt hat, weil es das in der ursprünglichen Funktion garnicht gab, bzw. seitens DEV´s einfach unter den Tisch gekehrt hat...
    Ich habe etliche Scripte, die infolge dessen mit 3.3.10.ff nicht mehr funktionieren (und auch wg. anderer "Änderungen"), daher stellt sich mir die Frage, wieso jemandohne Zwang auf eine aktuelle Version "umsteigt"? ?(

  • Zugriff auf Fingerabdruck-Scanner per AutoIt möglich?

    • Andy
    • 31. März 2014 um 20:48

    Ich würde mir die in den beiden Treiber-dll´s enthaltenen Funktionsnamen auslesen und schauen, ob ich darüber weitere Informationen bekomme.
    Die Anzahl der Parameter bekommt man so auch noch raus.
    Allererste Anlaufstelle ist der Scanner-Hersteller, der sicherlich ein API bereitstellt.

  • Send Keys in Inaktives Fenster

    • Andy
    • 31. März 2014 um 20:38

    schau mal im AutoItverzeichnis nach AutoIt Window Info, das gibt dir eine gute Übersicht über die Controls

  • Hex Farbverlauf mit definierter Anzahl

    • Andy
    • 31. März 2014 um 19:16

    oder so etwas wie hier

  • Windows Vista - Datenausführungsverhinderung

    • Andy
    • 30. März 2014 um 09:40

    Hi,

    Zitat


    Ich habe nun einige Verständniss-Ängste. Wenn ich der pdf-Anleitung folge, habe ich meiner Meinung nach die Datenausführungsverhinderung nicht deaktiviert, lediglich eine Ausnahme für die dllhost.exe angelegt. Korrekt soweit?

    Korrekt!

    Zitat

    Folgend würde mich interessieren, ob ihr mir dann zustimmt, dass im Falle eines Viren/Hack-Angriffs auf die dllhost.exe der Rechner ziemlich ausgeliefert ist.

    Im Falle einer Vireninfektion hat erstens der User, zweitens das Anti-Virensystem versagt. DEP hat mit beidem nicht viel zu tun, sondern fängt lediglich "unsauber" programmierte Speicherzugriffe ab. Einem gut programmierten Virus hat DEP nichts entgegenzusetzen!

    Das gesamte Windows-System ist "krank", das hat einzig allein wirtschaftliche Gründe. Solange Milliarden mit Betriebssystemen und Antivirensoftware verdient wird, ändert sich daran nichts! Gäbe es ein "sicheres" BS, bestünde kein Grund mehr umzusteigen!
    Bestes Beispiel ist der auslaufende "Support" bzgl. Virenbedrohung bei XP.
    Das war ein über Jahrzehnte laufendes, sehr stabiles, ausgereiftes System, und 90% der User die ich kenne, wären niemals umgestiegen nur weil es Win7 gibt...soviel dazu! Übrigens hatte ich seit 2001 auf mehreren Rechnern keinen einzigen Virenbefall, und ja, auf diesen Rechnern wurde auch im Internet gesurft, es wurde gezockt und diese Rechner wurden dienstlich genutzt.

    Die eigentlich Frage ist ja, wie man einem User erklären will, dass in einem SOOOOO alten BS nach tausenden von Patches immer noch "Lücken" sind. Das stellt die Frage in den Raum, wieso seit Jahrzehnten immer noch an den Symptomen rumgedoktort wird, statt einfach die Ursache zu beseitigen!
    Ähnlichkeiten mit großen Industriezweigen im Bereich Pharma und Chemie sind da sicher nur gaaaaanz zufällig!

  • Umlaut Problem

    • Andy
    • 23. März 2014 um 11:42

    Hi,

    Zitat

    Leider verändert das Script etwas an der Datei und ich weiss nicht was es ist.

    Kapier ich nicht...
    Datei lokal speichern, mit per externem FTP-Programm (du hast geschrieben "Bearbeite ich die Datei normal und lade sie dann hoch" ) runterladen und vergleichen.

    Schon mal die Parameter von

    [autoit]

    _FTP_FilePut()

    [/autoit]

    kontrolliert?
    Transfertyp und Cache sind immens wichtig...allerdings setzt du diese Flags in deinem Script garnicht!

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™