Sicherheitscenter vs. meine .exe



  • Mach ne Sicherheitskopie von deinem Quelltext und fang dann an alles nacheinander rauszulöschen! Dann wirste ja rausfinden woran es liegt! Oder passiert das auch bei einem Hallo Welt Programm?



  • Nein, es ist mir erst aufgefallen, als ich das programm bei einem Freund getestet habe, weil bei mir die MessageBox nicht auftritt ... Deshalb ist das auch ein bissl doof zu testen, aber ich denke mir bleibt nichts anderes übrig ...
    Aber kann denn die FW einfach in meinen Code gucken, oder wie?

    Könnte eine PeekMessage()-Funktion dran schuld sein?



  • Firewall, die denken kann? Heute nicht...
    Habt ihr die selben Firewalls? Wenn ja: Sind deine Sicherheitseinstellungen nicht so hoch wie die deines Freundes?

    Mfg Ominion



  • Top_se schrieb:

    Und zu den Regschlüsseln, die müssen erhalten bleiben, weil dort Einstellungen des Programms auch über das Beenden des Programms hinaus gesichert werden.
    Und in der Deinstall.txt (die mit im zip-Archiv enthalten ist) steht auch direkt drin, welcher Registryschlüssel erstellt wird und dann, wenn das Programm nichtmehr verwendet wird gelöscht werden soll ...

    das finde ich mal sehr angenehm, daß weder installer noch deinstaller gebraucht werden. und dann isses ja eigentlich auch lögisch, daß ich als eingeschränkter benutzer kniffeln kann. die 14 dialogboxen mit "fehler beim erstellen" und "fehler beim lesen" am anfang verwirren mich da ein wenig.
    würde CURRENT_USER statt LOCALE_MACHINE nicht viel sinniger sein?



  • Top_se schrieb:

    Aber kann denn die FW einfach in meinen Code gucken, oder wie?

    sie kann leicht sehen, welche funktionen aus dlls du benutzt. ist da irgendwas komisches (wie gesagt hooks zum beispiel), heult sie.

    Könnte eine PeekMessage()-Funktion dran schuld sein?

    nee, die benutzt jeder.



  • Lol, naja so war das nicht gemeint, aber ... ach egal.

    Naja, also er hat da warscheinl. noch die XP SP2-FW laufen, die den Spaß blockt, was ich auch nicht habe ...

    Der Freund ist ein Sicherheitsfetischist und der wird in gottes Namen niemals seine Sicherheitseinstellungen runter schrauben, da glaubt er schon eher, dass ich ihn etwas bößes will ... und deshalb würde ich halt gern wissen, wann solche Blockierungen meist vorgenommen werden.

    edit: volkard, dir antworte ich gleich!



  • Firewall hacken...
    Naja meistens geht da gar nichts (leider).

    Mfg Ominion



  • les mal
    http://users.ece.gatech.edu/~owen/Academic/ECE4112/Fall2004/Projects/dll injecting.doc
    und such darin nach IsBadWritePtr
    deine exe benutzt auch IsBadWritePtr

    stell dann deine exe mal auf die release-version um und schau, um dann noch sowas komisches drin ist.



  • So, okay, danke für die Info, also das mit dem eingeschränkten Konto war ganz schlecht von mir, daran hab ich nicht gedacht ... Daher rühren auch die messageboxen ...

    Ich habe mir LOCAL_MACHINE ausgesucht, weil ich ursprünglich die Highscore auch in der Registry lagern wollte und dann sollte auf dem PC nur 1 Highsocre da sein, also dass sie Benutzer des PC`s "kämpfen" können, aber nun werde ich wohl auf CURRENT_USER switchen!

    Das word-dokument schau ich mir mal an!



  • Also
    1., woher weißt du denn, dass meine exe diese IsBadWritePtr-Funktion verwendet.

    2., wie meinst du denn das hier:

    stell dann deine exe mal auf die release-version um

    Und eigentl. hab ich in dem Programm nur Funktionen benutzt, die ich auch in der MSDN gefunden habe und diese IsBadWritePtr-Funktion nie mit absicht ...
    Wie kann ich die dann aus meinem Code heraussuchen?

    Sorry für die dummen Fragen!



  • Top_se schrieb:

    Ich habe mir LOCAL_MACHINE ausgesucht, weil ich ursprünglich die Highscore auch in der Registry lagern wollte und dann sollte auf dem PC nur 1 Highsocre da sein, also dass sie Benutzer des PC`s "kämpfen" können, aber nun werde ich wohl auf CURRENT_USER switchen!

    können die user ja gerne so machen. zum beispiel als admin installieren und nur die highscore.txt für alle zum schreiben aufmachen. oder noch cooler gleich auf ner netzfreigabe spielen, damit die ganze forma eine hiscore-tabelle shared.



  • Top_se schrieb:

    Und eigentl. hab ich in dem Programm nur Funktionen benutzt, die ich auch in der MSDN gefunden habe und diese IsBadWritePtr-Funktion nie mit absicht ...
    Wie kann ich die dann aus meinem Code heraussuchen?

    schau dir deine exe mal genau an. zum beispiel mit wordpad.

    da siehste dann irgendwann

    ] InitCommonControlsEx  COMCTL32.dll  >♥Sleep KERNEL3
    2.dll  ¡ DispatchMessageA  ª☻TranslateMessage  :☺GetMessageA »☻UpdateWindow  '☻S
    howWindow  ` CreateWindowExA ↨☻RegisterClassExA  ·☺LoadCursorA »☺LoadIconA Z Def
    WindowProcA  ☺☻PostQuitMessage ý☺PeekMessageA  z DialogBoxParamA é☺MoveWindow  ÿ
     GetClientRect t☺GetWindowRect ½☺LoadImageA  n☺GetWindowLongA  Ü☺MessageBoxA *☻R
    eleaseDC ;☻SendMessageA  ◄☺GetDlgItem  Ø☻wsprintfA "☺InvalidateRect  ♀☺GetDC Æ E
    ndDialog ‼☺GetDlgItemTextA È EndPaint  ♪ BeginPaint  o☻SetScrollPos  p☻SetScroll
    Range  USER32.dll  ¥☺GetStockObject  O DeleteDC  N☻TextOutA  Í☺LineTo  Ñ☺MoveToE
    x  ■☻SetBkMode ↕ BitBlt  ♫☻SelectObject  - CreateCompatibleDC  GDI32.dll í☺RegQu
    eryValueExA  ã☺RegOpenKeyExA Ê☺RegCloseKey Î☺RegCreateKeyExA ú☺RegSetValueExA  A
    DVAPI32.dll  Ô☺GetTimeZoneInformation  »☺GetSystemTime j☺GetLocalTime  u☺GetModu
    leHandleA  ¬☺GetStartupInfoA    ☺GetCommandLineA Ú☺GetVersion  ¶ ExitProcess v D
    ebugBreak  ®☺GetStdHandle  <♥WriteFile ↓☻InterlockedDecrement  {☻OutputDebugStri
    ngA  -☺GetProcAddress  A☻LoadLibraryA  ↔☻InterlockedIncrement  s☺GetModuleFileNa
    meA  ~♥WideCharToMultiByte '☻IsBadWritePtr $☻IsBadReadPtr  ↕☻HeapValidate  h☺Get
    LastError  1 CloseHandle F♥TerminateProcess  ;☺GetCurrentProcess W♥UnhandledExce
    ptionFilter  î FreeEnvironmentStringsA ï FreeEnvironmentStringsW M☺GetEnvironmen
    tStrings O☺GetEnvironmentStringsW  ☼♥SetHandleCount  ^☺GetFileType ♠☻HeapDestroy
     ♦☻HeapCreate  ◘☻HeapFree  m♥VirtualFree Ä☻RtlUnwind Û☻SetConsoleCtrlHandler ☻☻H
    eapAlloc ♀☻HeapReAlloc j♥VirtualAlloc  !♥SetStdHandle  æ FlushFileBuffers  d☻Mul
    tiByteToWideChar O CreateFileA ý GetCPInfo ö GetACP  S☺GetOEMCP  ¯☺GetStringType
    A  ²☺GetStringTypeW  ♠♥SetFilePointer  £☻ReadFile  ý☻SetEndOfFile  3☻LCMapString
    

    klar haste das nicht alles eingebaut. aber du hast sachen aus der bibliothek benutzt. und das macht anscheinend sowas.
    zunächst mal stell die release-version ein. mir scheint, daß viel des komischen codes nur drauf geht, um gegebenenfalls nach schutzfehlern zu suchen.
    hilft das noch nicht, dann stell bei den linkeroptionen ein, daß du dlls statt static libs als runtime-libs benutzen willst. dann müßte der komische code ja in der dll stehen und vielleicht isses dann kein problem mehr.



  • Top_se schrieb:

    2., wie meinst du denn das hier:

    stell dann deine exe mal auf die release-version um

    ich hab deinen compiler nicht und kann dir nicht sagen, wie das bei dir geht.
    vielleicht steht bei den smart-icons unter dem menu irgendwo eine combo-box, in der Debug steht und die sich heftig wünsch, daß du auch mal Release reinschreibst. wenn dem so ist, mach das mal und schau dann die exe-date nochmal an.
    wenn dem nicht so ist, mußte uns verraten, welchen compiler du benutzt und dir muß jemand andrer helfen, den debug-code loszuwerden.



  • Vorausgesetzt du kompilierst auch mit deiner IDE (was ich kräftig unterlasse). Wenn du nähmlich deinen Compiler über die Konsole bedienst, gibt es diese Möglichkeit (bei den mir bekannten Compilern) nicht.

    Mfg Ominion



  • Okay, jetzt hab ich den Releaseknopp gefunden, was issn da der Unterschied?

    Also ich habe MS Visual C++ 6 und jetzt bei der Releaseverion bekomme ich 2 ganz komische Fehler, die mir nun garnichts sagen:

    --------------------Konfiguration: KniffelWinAPI - Win32 Release--------------------
    Ressourcen werden kompiliert...
    Kompilierung läuft...
    main.cpp
    Linker-Vorgang läuft...
    main.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__InitCommonControlsEx@4
    Release/KniffelWinAPI.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.

    KniffelWinAPI.exe - 2 Fehler, 0 Warnung(en)

    Aber dass man in Wordpad die Funktionen sieht, die ich aufrufe is ja auch lustig ...

    Danke ihr beiden, seid mir eine riesen Hilfe!



  • Ominion schrieb:

    Vorausgesetzt du kompilierst auch mit deiner IDE (was ich kräftig unterlasse).

    in der exe steht am ende
    C:\Dokumente und Einstellungen\Udo\Eigene Dateien\Programmieren\C++\Meins!\KniffelWinAPI\Debug\KniffelWinAPI.pdb
    ich denke, wir können irgend eine version des ms developer studios unterstellen.
    und er hat den modus noch auf Debug stehen.
    und er heißt Udo.



  • Jo, ich hatte noch auf Debug stehen, aber Udo heiß ich nicht *lach*, so ist nur mein Accountname *g*

    Aber, ähm, wenn ich versuche meine .exe mit Wordpad anzugucken, dann sehe ich nur Kryptische Zeichen, gibts da nen "Cheatermodus", den du eingestellt hast?



  • Top_se schrieb:

    Okay, jetzt hab ich den Releaseknopp gefunden, was issn da der Unterschied?

    in der debug-version werden noch allerhand tests gemacht, damit die fehler viel schneller findest. zum beispiel der beliebte

    int summe;
    for(int i=0;i<anz;++i)
       summe+=array[i];
    

    mist, summe vergessen zu initialisieren. ist aber fast egal, meistens steht an der speicherstelle eh von alleine zufällig 0. aber halt nicht immer. fehler ist schwer zu finden und tauscht nicht immer auf. schlimmstenfalls erst beim kunden.
    im debugmodus macht der compiler automatisch

    int summe=-850000000;//ungefähr minus 850 millionen. genau kann man das nur hexadezimal kapieren
    for(int i=0;i<anz;++i)
       summe+=array[i];
    

    und du siehst dann am falschen ergebnis wenigstens gleich, daß da irgendwas nicht stimmt. dafür ist der debug-code nur halb so schnell. und der debug-code hat manchmal informationen wie den vornamen des programmierers drin.

    main.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__InitCommonControlsEx@4
    Release/KniffelWinAPI.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.

    kann ich nicht nachvollziehen. was als Debug geht, müßte als Release auch gehen.
    haste irgendwann bei den linkereinstellungen was hinzugefügt? ne lib hinzugefügt, die er linken soll? (vielleicht was mit progress bars) dann haste die evtl nur in der Debug-einstellung hinzugrfügt und müßtest das für die Release-einstellung auch noch machen.



  • Top_se schrieb:

    Jo, ich hatte noch auf Debug stehen, aber Udo heiß ich nicht *lach*, so ist nur mein Accountname *g*
    Aber, ähm, wenn ich versuche meine .exe mit Wordpad anzugucken, dann sehe ich nur Kryptische Zeichen, gibts da nen "Cheatermodus", den du eingestellt hast?

    wordpad zeigt mir auch viel mist. ich kann aber zum beispiel nach IsBad suchen und dann zeigt er mir das und die umgebung.
    ich hab nicht wordpad verwendet, sondern den far file manager.



  • Okay, das war SEHR SEHR lehreich für mich, vielen vielen Dank!

    Also ich glaube das IsBad.... is jetzt aus dem Releasecode raus, ich werde das dann morgen mit dem Freund testen, dankeschön!


Anmelden zum Antworten