Sicherheitscenter vs. meine .exe
-
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 IsBadWritePtrstell 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☻LCMapStringklar 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 automatischint 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!
-
Dein compile-log schrieb:
--------------------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)
Du verwendest die "Windows Common Controls". Dafür müsstest du bereits unter den [Projekteinstellungen] -> [Linker] die "commctrl32.lib*)" angegeben haben. Da du nun unter anderen Projekteinstellungen compilierst ("Release") und MSVS 6.0 IMHO die Linkereinstellungen nicht automatisch zwischen "Debug" und "Releas" updated, musst du diese nochmals eintragen.
Nagel mich bitte nicht auf den Namen fest, hab' mein VS nebst MSDN grad nicht installiert. Den korrekten Namen der Library findest du in der MSDN bei der Beschreibung der FunktionInitCommonControlsEx()unter "Requirements".
HIH
Greetz Swordfish
-
jo @ swordfish, so habe ich es dann auch gemacht und das hat dann auch mit dem compilieren geklappt!
*heul*, aber als ich dann die neue .exe bei dem Freund probiert habe, ist die Meldung trotzdem nicht weg gegangen ...
Ich hab mir auch die .exe angeschaut und das mit dem "IsBad..." ist auch weg, und es geht trotzdem nicht *wein*
hier ist die neue .exe in einem Archiv:
http://www.uploadtemple.com/view.php/1145888711.zip (fehlt natürlich jetzt der ganze rest um Kniffel richtig zu starten)
habt ihr vllt. noch Ideen, das wäre sehr sehr lieb von euch!EDIT: Ich würde euch auch die 2500 zeilen Code geben, wenn ihr dadraus den "Fehler" finden könntet!
Dankeschön
-
Für was brauchst du die heap-functions (HeapAlloc, VirtualAlloc)?
stammt TerminateProcess() von dir oder hat das der compiler eingebaut?
Was macht UnhandledExceptionFilter()?
-
Hm, also ich habe nicht eine dieser Funktionen in meinen Programmcode manuell eingebaut!
Hab auch den Code durchsucht und soweit dort keine dieser Funktionen gefunden ...Das ist aber schon ein bissl (hm, wie soll ich das sagen), naja, "nervig", dass mir der Compiler da Funktionen in meine .exe einbaut, die ich garnicht haben möchte ...
Danke für die Versuche, bzw. was kann ich denn jetzt machen, damit diese Funktionen nicht von meinem Compiler da rein gebaut werden?
-
hihi, kannst mir den Code ja mal schicken wenn mir was einfällt, werd ich mich umgehend melden; ich hasse solche Fehler; keine Ahnung woran es liegt... tze tze tze
also wenne lust hast: cpp-coding@arcor.de
just send it and i'll try to find the BiG BuG

Achja wenns geht innem Projekt also mit allem drum und dranne sonz wird das mit dem Debuggen etwas schwer

MfG CodeFinder
-
Das nehme ich gerne in Anspruch, der Code kommt gleich!
THX