Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Shareware Versionen vor Cracker schützen (https://www.delphipraxis.net/46564-shareware-versionen-vor-cracker-schuetzen.html)

Luckie 17. Mai 2005 18:46


Shareware Versionen vor Cracker schützen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe diese Postings vom XP Usermanager Thread abgespalten, da sie mit ihm eigentlich nichts zu tun haben. Ich habe im ertsen Posting wieder die Demo Version angehangen, um die es hier geht.

Ich habe die Demo Version versucht etwas sicherer zu machen. Ich hoffe, es ist nun nicht mehr ganz so leicht sie zu cracken. Ihr könnt ja mal probieren. Download wieder im ersten Posting.

brechi 17. Mai 2005 20:24

Re: Neue Version des XP Usermanger ist fertig!
 
IsDebuggerPresent :)))

Luckie 17. Mai 2005 20:26

Re: Neue Version des XP Usermanger ist fertig!
 
Jupp. Macht es denn das schwieriger oder nicht?

brechi 17. Mai 2005 20:31

Re: Neue Version des XP Usermanger ist fertig!
 
nein ;>

hatte vorher net versucht aber da du danach aufgerufen hast, hab ich für beide patches etwa 40 sekunden gebraucht (das entpacken von UPX mal abgesehen)

Luckie 17. Mai 2005 20:33

Re: Neue Version des XP Usermanger ist fertig!
 
Und warum ist es nicht einfacher?

brechi 17. Mai 2005 20:36

Re: Neue Version des XP Usermanger ist fertig!
 
du meinst schwieriger?

weil das ein API call mehr ist, wo nen bp drauf gemacht wird
ich könnte da mal nen video zu machen, aber hab ledier gestern formatiert hab das prog net mehr.


könnte dir aber eins zeigen wo ich das mal mit mIRC gemacht habe, das hat 5 mins gedauert (1 mal vorher getestet, ca. 15 mins)

Luckie 17. Mai 2005 20:39

Re: Neue Version des XP Usermanger ist fertig!
 
Und wie kommt man an die Sprungadresse ohne Debugger?

brechi 17. Mai 2005 20:42

Re: Neue Version des XP Usermanger ist fertig!
 
um jetzt mal die wenigen tastenkombinationen aufzuzählen

doppelklick auf ollydbg.exe
f3
auswahl der exe
alt+e
klick auf kernel32.dll
strg+n
eingabe "isdebuggerpre"
f2
f9
3* f7
cursor nach oben
leertaste
xor eax, eax
rechtsklick druf
copy to executable
selection
fenster schließen
ja klicken
speichern klicken

und es ist gepatched, wie das mit dem fenster geht muss ich ja net sagen ^^, nur der isdebuggerpresent patch bringt ja nix

Luckie 23. Mai 2005 00:28

Re: Neue Version des XP Usermanger ist fertig!
 
Bitte noch mal probieren die Demo zu cracken. Es gibt eine neue Version. Download im Anhang vom ersten Posting.

Olli 23. Mai 2005 02:13

Re: Neue Version des XP Usermanger ist fertig!
 
Ist schon deutlich schwerer. Dumper helfen nichts, weil die zu doof sind und nichtvorhandenes eben auch schwerlich wiederherstellen können. Mein Ansatz zum "Crack" wäre entsprechend ein Loader. Offenbar immernoch mit UPX 1.24 gepackt, aber dann irgendwie durch einen Scrambler oder Crypter gelaufen. Wie üblich kann man die Debuggerdetection ausschalten, indem man an 0x7FFDF002 das Byte von 1 auf 0 patcht (== PEB.BeingDebugged), bevor man das Programm weiterlaufen läßt. Da IsDebuggerPresent() bekanntlich nichts anderes tut als jede normale NT-Debuggererkennung (IsDebuggerPresent ist eben nur wie ein Leuchtturm für den Cracker, mehr nicht *g*):
Code:
.text:77E5AC39 _IsDebuggerPresent@0 proc near
.text:77E5AC39                 mov    eax, large fs:18h
.text:77E5AC3F                mov    eax, [eax+TEB.Peb]
.text:77E5AC42                 movzx  eax, [eax+PEB.BeingDebugged]
.text:77E5AC46                 retn
.text:77E5AC46 _IsDebuggerPresent@0 endp
Damit ist dann schonmal die halbe Miete eingefahren. Denn jeder nicht allzu dumme Mensch weiß, daß NTDLL und Kernel32 nicht relozierbar sind und sich deshalb (Billseidank :lol:) immer an der gleichen Stelle im Speicher befinden, nämlich an 0x77880000 respektive 0x77E40000 (und User32 an 0x77D00000; die Adressen unterscheiden sich je nach OS-Version). Der PEB sitzt ebenfalls immer einheitlich an 0x7FFDF000 (bisher bei jedem NT). So ist es nun ein leichtes, nachdem wir den Debuggermist ausgeschalten haben, einen Breakpoint auf eine der definitiv aufgerufenen Funktionen (z.B. erstmal LoadLibrary, dann MessageBoxA/W) zu setzen um das wunderbar entpackte Programm zu begutachten. Der Rest (d.h. das Patchen) wäre dann Aufgabe des Loaders als Hauptbestandteil eines Cracks. Alternativ kann man natürlich das Programm dumpen und dann die Strukturen wiederherstellen. Aber wozu - das wäre ungleich schwerer.

Fazit: Wie gesagt, es ist deutlich schwerer im Vergleich zu den vorigen Malen. Es ist aber mit ein wenig Mehraufwand möglich, den ich aktuell aus Zeitmangel aber nicht investieren möchte.

Ich vergaß zu erwähnen: Natürlich kann man an 0x0053B034 die beiden DWORDs nach dem Start beobachten, denn der PE-Loader ist ja so nett uns schonmal die Adressen der beiden importierten Funktionen einzufüllen:
Code:
.idata:0053B034 ; Segment type: Externs
.idata:0053B034 ; _idata
.idata:0053B034 ; FARPROC __stdcall GetProcAddress(HMODULE hModule,LPCSTR lpProcName)
.idata:0053B034 GetProcAddress dd offset kernel32_GetProcAddress
.idata:0053B038 ; HMODULE __stdcall LoadLibraryA(LPCSTR lpLibFileName)
.idata:0053B038 LoadLibraryA dd offset kernel32_LoadLibraryA
Danach muß nur noch zu diesen Adressen gegangen werden und ein Brakpoint gesetzt werden. Ich habe es mit dem Patchen von 0x7FFDF002 (s.o.) geschafft, daß das Programm normal im Debugger läuft. Dank IDA kann man einen Teil dieser Aufgaben mit einem kleinen IDC-Script automatisieren, wobei auch nach einem Neustart des Programms die Analyse deutlich beschleunigt wird *g*
Interessant ist dieser Packer oder Crypter oder Packer mit Scrambler oder Crypter allemal, weil dort noch Stacktricks verwendet werden, von denen ich nicht sicher wäre, ob die bei XP SP2 noch laufen. Scheinen sie ja aber - kann das mal jemand testen?

Luckie 23. Mai 2005 02:22

Re: Neue Version des XP Usermanger ist fertig!
 
Zu deinen Vermutungen äußere ich mich jetzt mal nicht. ;) Aber für normale Anwender und Gelegenheits-Cracker sollte es reichen - hoffentlich. Ichmeine, wer hindert jemanden mit einer Vollversion daran es weiterzugeben oder ins Internet zu stellen?

Olli 23. Mai 2005 03:21

Re: Neue Version des XP Usermanger ist fertig!
 
Zitat:

Zitat von Luckie
Zu deinen Vermutungen äußere ich mich jetzt mal nicht. ;) Aber für normale Anwender und Gelegenheits-Cracker sollte es reichen - hoffentlich. Ichmeine, wer hindert jemanden mit einer Vollversion daran es weiterzugeben oder ins Internet zu stellen?

Wie gesagt, es ist schwerer - unmöglich geht so oder so nicht ;)

Für alle die es interessiert. Der Mechanismus mit dem die Adressen geholt werden ist recht simpel:
Code:
debug028:00418EE4 dd 18FF0h                              ; RVA to DLL name
debug028:00418EE8 dd 18FA0h                              ; RVA to function address
debug028:00418EEC dd 0
debug028:00418EF0 dd 0
debug028:00418EF4 dd 0
debug028:00418EF8 dd 18FFDh
debug028:00418EFC dd 18FB0h
debug028:00418F00 dd 0
debug028:00418F04 dd 0
debug028:00418F08 dd 0
debug028:00418F0C dd 1900Ah
debug028:00418F10 dd 18FB8h
debug028:00418F14 dd 0
debug028:00418F18 dd 0
debug028:00418F1C dd 0
debug028:00418F20 dd 19017h
debug028:00418F24 dd 18FC0h
debug028:00418F28 dd 0
debug028:00418F2C dd 0
debug028:00418F30 dd 0
debug028:00418F34 dd 19021h
debug028:00418F38 dd 18FC8h
debug028:00418F3C dd 0
debug028:00418F40 dd 0
debug028:00418F44 dd 0
debug028:00418F48 dd 19029h
debug028:00418F4C dd 18FD0h
debug028:00418F50 dd 0
debug028:00418F54 dd 0
debug028:00418F58 dd 0
debug028:00418F5C dd 19036h
debug028:00418F60 dd 18FD8h
debug028:00418F64 dd 0
debug028:00418F68 dd 0
debug028:00418F6C dd 0
debug028:00418F70 dd 19043h
debug028:00418F74 dd 18FE0h
debug028:00418F78 dd 0
debug028:00418F7C dd 0
debug028:00418F80 dd 0
debug028:00418F84 dd 1904Fh
debug028:00418F88 dd 18FE8h
debug028:00418F8C dd 0
debug028:00418F90 dd 0
debug028:00418F94 dd 0
debug028:00418F98 dd 0
debug028:00418F9C dd 0
[color=red]An diesen Stellen steht jeweils vorher (vor dem Auflösen) die RVA zum Funktionsnamen
Wie man sehen kann, ist die Basisadresse hier wieder 0x400000, also einfach RVA + 0x400000 ;)[/color]
debug028:00418FA0 dd 77E901D5h                           ; kernel32_LoadLibraryA
debug028:00418FA4 dd 77E90C5Fh                           ; kernel32_GetProcAddress
debug028:00418FA8 dd 77E96972h                           ; kernel32_ExitProcess
debug028:00418FAC dd 0                                    ; Separator
debug028:00418FB0 dd 793546D3h                           ; advapi32_FreeSid
debug028:00418FB4 dd 0                                    ; Separator
debug028:00418FB8 dd 7171884Ch                           ; comctl32_ImageList_Create
debug028:00418FBC dd 0                                    ; Separator
debug028:00418FC0 dd 77F4241Eh                           ; GDI32_SetBkMode
debug028:00418FC4 dd 0                                    ; Separator
debug028:00418FC8 dd 782F825Ah                           ; mpr_WNetAddConnection2A
debug028:00418FCC dd 0                                    ; Separator
debug028:00418FD0 dd 75117AD6h                           ; netapi32_NetUserDel
debug028:00418FD4 dd 0                                    ; Separator
debug028:00418FD8 dd 779C93D0h                           ; oleaut32_SysFreeString
debug028:00418FDC dd 0                                    ; Separator
debug028:00418FE0 dd 775B4EBEh                           ; shell32_SHGetMalloc
debug028:00418FE4 dd 0                                    ; Separator
debug028:00418FE8 dd 77E087E8h                           ; USER32_SetFocus
debug028:00418FEC dd 0                                    ; Separator
debug028:00418FF0 aKernel32_dll db 'KERNEL32.DLL',0
debug028:00418FFD aAdvapi32_dll db 'advapi32.dll',0
debug028:0041900A aComctl32_dll db 'comctl32.dll',0
debug028:00419017 aGdi32_dll db 'gdi32.dll',0
debug028:00419021 aMpr_dll db 'mpr.dll',0
debug028:00419029 aNetapi32_dll db 'netapi32.dll',0
debug028:00419036 aOleaut32_dll db 'oleaut32.dll',0
debug028:00419043 aShell32_dll db 'shell32.dll',0
debug028:0041904F aUser32_dll db 'user32.dll',0
debug028:0041905A db   0
debug028:0041905B db   0
debug028:0041905C aLoadlibrarya db 'LoadLibraryA',0
debug028:00419069 db   0
debug028:0041906A aGetprocaddress db 'GetProcAddress',0
debug028:00419079 db   0
debug028:0041907A aExitprocess db 'ExitProcess',0
debug028:00419086 db   0
debug028:00419087 db   0
debug028:00419088 aFreesid db 'FreeSid',0
debug028:00419090 db   0
debug028:00419091 db   0
debug028:00419092 aImagelist_crea db 'ImageList_Create',0
debug028:004190A3 db   0
debug028:004190A4 aSetbkmode db 'SetBkMode',0
debug028:004190AE db   0
debug028:004190AF db   0
debug028:004190B0 aWnetaddconnect db 'WNetAddConnection2A',0
debug028:004190C4 db   0
debug028:004190C5 db   0
debug028:004190C6 aNetuserdel db 'NetUserDel',0
debug028:004190D1 db   0
debug028:004190D2 aSysfreestring db 'SysFreeString',0
debug028:004190E0 db   0
debug028:004190E1 db   0
debug028:004190E2 aShgetmalloc db 'SHGetMalloc',0
debug028:004190EE db   0
debug028:004190EF db   0
debug028:004190F0 aSetfocus db 'SetFocus',0
debug028:004190F9 db   0
Da ich, wie gesagt, keine Zeit für eine intensive Analyse habe, hier noch der Teil, wo die eigene Importtabelle gefüllt wird:
Code:
.text:00521422 loc_521422:                            ; CODE XREF: sub_52113B+2E2j
.text:00521422 add    ecx, esi
.text:00521424 mov    [ebp+OwnImportTable], ecx
.text:00521427 add    eax, esi
.text:00521429 push   eax
.text:0052142A mov    eax, [ebp+LoadLibrary]
[color=red]DLL laden[/color]
.text:0052142D call   dword ptr [eax]                ; LoadLibrary
.text:0052142F test   eax, eax
.text:00521431 jz     loc_52153D
.text:00521437 mov    edi, eax
.text:00521439
.text:00521439 loc_521439:                            ; CODE XREF: sub_52113B+32Fj
.text:00521439 mov    ecx, [ebp+OwnImportTable]
.text:0052143C mov    edx, [ecx]
.text:0052143E test   edx, edx
.text:00521440 jz     short loc_52146C
.text:00521442 test   edx, 80000000h
.text:00521448 jz     short loc_521452
.text:0052144A and    edx, 7FFFFFFFh
.text:00521450 jmp    short loc_521456
.text:00521452 ; ---------------------------------------------------------------------------
.text:00521452
.text:00521452 loc_521452:                            ; CODE XREF: sub_52113B+30Dj
.text:00521452 add    edx, esi
.text:00521454 inc    edx
.text:00521455 inc    edx
.text:00521456
[color=red]Funktionsadresse ermitteln und zwischenspeichern[/color]
.text:00521456 loc_521456:                            ; CODE XREF: sub_52113B+315j
.text:00521456 push   edx
.text:00521457 push   edi
.text:00521458 mov    eax, [ebp+GetProcAddress]
.text:0052145B call   dword ptr [eax]                ; GetProcAddress
.text:0052145D mov    ecx, [ebp+var_3C]
.text:00521460 mov    [ecx], eax
.text:00521462 add    [ebp+var_3C], 4
.text:00521466 add    [ebp+OwnImportTable], 4
.text:0052146A jmp    short loc_521439
.text:0052146C ; ---------------------------------------------------------------------------
.text:0052146C
.text:0052146C loc_52146C:                            ; CODE XREF: sub_52113B+305j
.text:0052146C add    ebx, 14h
.text:0052146F jmp    short loc_52140A
.text:00521471 ; ---------------------------------------------------------------------------
.text:00521471
[color=red]Hochinteressant wird's hier auf NT[/color]
.text:00521471 loc_521471:                            ; CODE XREF: sub_52113B+2C8j
.text:00521471                                         ; sub_52113B+2D4j
.text:00521471 mov    eax, large fs:30h
.text:00521478 mov    eax, [eax+PEB.ProcessModuleInfo]
.text:0052147B mov    ebx, [eax+PEB.ProcessModuleInfo]
.text:0052147E mov    [ebp+ModuleInfo], ebx
.text:00521481
.text:00521481 loc_521481:                            ; CODE XREF: sub_52113B+3F3j
.text:00521481 mov    edx, [ebx+PEB_LDR_DATA.ModuleHeader.EntryToInMemoryOrderModuleList.Flink]
.text:00521484 cmp    edx, [ebp+var_50]
OEP ist übrigens: 0x00417160! Aber ich bin noch nicht sicher, ob das der OEP des UPX-gepackten Programmes ist, denn erst danach werden nochmal weiter API-Adressen aufgelöst.

Luckie 24. Mai 2005 21:31

Re: Neue Version des XP Usermanger ist fertig!
 
Version mit, hoffentlich, besseren Schutz hochgeladen: http://www.delphipraxis.net/internal...=255881#255881

Kleiner Hinweis: Nicht mit UPX gepackt und nicht verschlüsselt.

brechi 24. Mai 2005 22:29

Re: Neue Version des XP Usermanger ist fertig!
 
alte version war besser geschützt

wegen dem was olli beschrieben hat:

einfach breakpoint auf virtualProtect dann hardware breakpoint auf den speicher den er bekommt (noch net mal relocation fix drin oO, er macht nix wenner anderen speicher bekommt oO)

danach nen hw breakpoint auf den speicher -> dann bekommt man nen rep movs, in ESI steht dann die verschlüsselte (jetzt entschlüsselte) exe -> die einfach dumpen

Luckie 24. Mai 2005 22:36

Re: Neue Version des XP Usermanger ist fertig!
 
Ich habe ehrlich gesagt kein Wort verstanden.

Nicodius 24. Mai 2005 22:41

Re: Neue Version des XP Usermanger ist fertig!
 
lol - ihr seid wirklich hacker was? :roll:

brechi 24. Mai 2005 22:49

Re: Neue Version des XP Usermanger ist fertig!
 
kein problem
alte version:

auf virtual protect nen breakpoint setzen, d.h. es wird angehalten wenn das prog versuch den speicher freizumachen im bereich 0x00400000 wo normal die exe liegt, jetzt wird die exe entschlüsselt und dann an den speicher geschrieben
deshalb macht man einen hardware access breakpoint auf die adresse (0x00400000) dann bekommt man die assembler instrucion
die dort den speicher hinschreibt
das ist ein REP MOVS der 2 "parameter" hat EDI und ESI
in EDI steht die stelle wos hingeschrieben wird (0x00400000) in ESI wovon es geschrieb wird und da ist die exe ganz enschlüsselt drin die kann man dann einfach dumpen und starten


neuste version:

debugger detection:

Code:
0040BE46  |. 50             PUSH EAX
0040BE47  |. 64:8B05 300000>MOV EAX,DWORD PTR FS:[30]
0040BE4E    8B40 02        MOV EAX,DWORD PTR DS:[EAX+2]
0040BE51     8805 48D74000  MOV BYTE PTR DS:[40D748],AL
einfach MOV EAX, ...[eax+2] noppen

kernel32.IsDebuggerPresent:

Code:
7C812E03 > 64:A1 18000000   MOV EAX,DWORD PTR FS:[18]
7C812E09   8B40 30          MOV EAX,DWORD PTR DS:[EAX+30]
7C812E0C  0FB640 02        MOVZX EAX,BYTE PTR DS:[EAX+2]
7C812E10   C3               RETN
____

alternativ kommt man an die adresse wenn man
zu 7ffdf000 geht (wenn nicht vorhanden zu 7ffde000)
dann die adresse bei 7ffdf030 bzw 7ffde030 schaut
und dann an diese adresse geht
z.b. 7ffdc000 <- das 3. byte, also 7ffdc003 ist bei nem debugger dann ne 1 oder wenn nix aktiv ist ne 0
only NT


exception(3 an der zahl):

Code:
0040BE9E /$ 31C0           XOR EAX,EAX                             // setzen
0040BEA0  |. 64:FF30        PUSH DWORD PTR FS:[EAX]                 // exception handler pushen
0040BEA3  |. 64:8920        MOV DWORD PTR FS:[EAX],ESP
0040BEA6  |. 8160 18 550100>AND DWORD PTR DS:[EAX+18],155            // exception hier
0040BEAD |. 64:8F05 000000>POP DWORD PTR FS:[0]
einfach das AND noppen

Luckie 24. Mai 2005 22:52

Re: Neue Version des XP Usermanger ist fertig!
 
OLLI!!! Sag was. Hilf mir! Ich will mein Geld zurück.

brechi 24. Mai 2005 23:19

Re: Neue Version des XP Usermanger ist fertig!
 
Zitat:

Zitat von Olli
Der PEB sitzt ebenfalls immer einheitlich an 0x7FFDF000 (bisher bei jedem NT).

ab XP SP2 nicht mehr

Zitat:

Zitat von Olli
Denn jeder nicht allzu dumme Mensch weiß, daß NTDLL und Kernel32 nicht relozierbar sind

!theoretisch! schon praktisch kann man das durch einen hook auch erreichen, vielleicht bekomm ich da mal nen beispel hin, jedoch wird die kernel32.dll / ntdll.dll immer vorher geladen, d.h. sie ist immer an dieser stelle, aber mit bischen tricksen bekomm man sie im laufenden programm an eine andere stelle

http://www.arschvoll.net/forceloadlibraryworking.JPG
gaanz alte version wo man das laden schon hinbekommen hat

Olli 25. Mai 2005 01:27

Re: Neue Version des XP Usermanger ist fertig!
 
Vorweg: ich habe mir die neue Version noch nicht angeschaut.

Zitat:

Zitat von brechi
alte version war besser geschützt

wegen dem was olli beschrieben hat:

einfach breakpoint auf virtualProtect dann hardware breakpoint auf den speicher den er bekommt (noch net mal relocation fix drin oO, er macht nix wenner anderen speicher bekommt oO)

danach nen hw breakpoint auf den speicher -> dann bekommt man nen rep movs, in ESI steht dann die verschlüsselte (jetzt entschlüsselte) exe -> die einfach dumpen

Interessante Methode. Danke für den Hinweis ;)
Ich habe es etwas anders gemacht.

Übrigens: wieviele HW-BPX hast du? :mrgreen: ... könnte sein, daß die dir irgendwann ausgehen. *grins*

Zitat:

Zitat von Luckie
Ich habe ehrlich gesagt kein Wort verstanden.

Aber ich ;)

Zitat:

Zitat von brechi
alternativ kommt man an die adresse wenn man
zu 7ffdf000 geht (wenn nicht vorhanden zu 7ffde000)
dann die adresse bei 7ffdf030 bzw 7ffde030 schaut
und dann an diese adresse geht
z.b. 7ffdc000 <- das 3. byte, also 7ffdc003 ist bei nem debugger dann ne 1 oder wenn nix aktiv ist ne 0
only NT

Na Luckie? Erinnert dich das an was? ;)
@brechi: du bist ganz sicher mit: 0x7ffdc003? Ich eher nicht ... bei mir ist das Byte eins tiefer ;) ... denn wir beginnen ja bei Null die Zählung.

Zitat:

Zitat von Luckie
OLLI!!! Sag was. Hilf mir! Ich will mein Geld zurück.

Selber schuld wenn du so voreilig was veröffentlichst ;) ... hatte nen Audit angeboten.
Geld? Welches Geld? Ist noch keins bei mir angekommen *grins*

@Luckie: der Rest per PN. Erinnere mich dran!

@brechi: XP SP2 habe ich leider noch nicht überprüft. Aber wozu gibt's FS ;) ... Nebenbei, du bist im DF nicht zufällig unter einem anderen Namen unterwegs (alternativ: -"- gewesen)? Relozierung der System-DLLs ist
1.) unsinnig (nicht umsonst sind alle DLLs je nach OS-Version aufeinander abgestimmt)
2.) gefährlich (weil sich eben doch manche drauf verlassen)
3.) unwahrscheinlich in einem neuen Prozess
4.) wer ist "man"?

Luckie 25. Mai 2005 01:32

Re: Neue Version des XP Usermanger ist fertig!
 
Zitat:

Zitat von Olli

Zitat:

Zitat von brechi
alternativ kommt man an die adresse wenn man
zu 7ffdf000 geht (wenn nicht vorhanden zu 7ffde000)
dann die adresse bei 7ffdf030 bzw 7ffde030 schaut
und dann an diese adresse geht
z.b. 7ffdc000 <- das 3. byte, also 7ffdc003 ist bei nem debugger dann ne 1 oder wenn nix aktiv ist ne 0
only NT

Na Luckie? Erinnert dich das an was? ;)

Das war doch ein Member einer Struktur, die wir durchgegangen sind oder?

Nun ja voreillig? Ich dachte wir wären mit dem Austricksen des Debuggers durch. :gruebel:

Olli 25. Mai 2005 01:42

Re: Neue Version des XP Usermanger ist fertig!
 
Zitat:

Zitat von Luckie
Das war doch ein Member einer Struktur, die wir durchgegangen sind oder?

Jupp. PEB.BeingDebugged!

Zitat:

Zitat von Luckie
Nun ja voreillig? Ich dachte wir wären mit dem Austricksen des Debuggers durch. :gruebel:

Würdest du sagen, daß nach 5-stündiger Erklärung für, grob geschätzt, 100 Zeilen Code, und das Drumherum dieses Thema ausgekostet ist? Wir haben es angekratzt. Die Methode von brechi ist interessant und ich werde mir das einmal weiter anschauen. Gegenmaßnahmen sind durchaus drin sollten aber (gerade bei brechi, der im Übrigen die 2 gestern erklärten Tricks schon kannte) gut durchdacht sein. Genau das werde ich tun sobald es meine Zeit zuläßt.

@brechi: Du benutzt welchen Debugger? Würde den Debugger gern mal testen. Vor direktem Anti-XYZ-Produkt-Code brauchst du bei mir jedenfalls keine Angst haben.

brechi 25. Mai 2005 06:11

Re: Neue Version des XP Usermanger ist fertig!
 
7ffdxxx2 sollte es sein bei < XPSP2 ist es 7ffdf002
hab mich da um 1 verzählt ;>

bin im DF unter anderem namen angemeldet, wen du da jetzt vermutest weiß ich nicht, luckie sollte aber wissen wer ich bin
nichtsdestotrotz weiß ich wer du bist.

PEB.BeingDebugged selbstauslesen funzt hier nur so gut weils das prog für winNT only ist

fake exception kenn ich eigentlcih bisl anders durch int3 breakpoints aufrufen die von einem debugger immer abgefangen werden

hab genau so viele HW BPs wie du, eigentlich reicht immer einer oder max 2

ich benutze ollydbg der kennt auch memory breakpoints (wird über VirtualProtect gemacht)

Olli 25. Mai 2005 09:35

Re: Neue Version des XP Usermanger ist fertig!
 
Zitat:

Zitat von brechi
bin im DF unter anderem namen angemeldet, wen du da jetzt vermutest weiß ich nicht,

Jemanden dessen Nick mit u beginnt jedenfalls.

Zitat:

Zitat von brechi
nichtsdestotrotz weiß ich wer du bist.

Kunststück, wenn ich unter meinem Rufnamen unterwegs bin. Mein Wissensprofil ist auch relativ selten, von daher ;)

Zitat:

Zitat von brechi
PEB.BeingDebugged selbstauslesen funzt hier nur so gut weils das prog für winNT only ist

Pah, auf W9x stelle ich ein JS davor um es auf W9x nicht zuzulassen. Schwuppdi ist das Proggy kompatibel. Allerdings ist 1.) Luckies Prog nur unter NT lauffähig und 2.) das Ergebnis des verwendeten Scramblers.

Zitat:

Zitat von brechi
fake exception kenn ich eigentlcih bisl anders durch int3 breakpoints aufrufen die von einem debugger immer abgefangen werden

Dies ist auch nicht der Sinn dieser Exceptions.

Zitat:

Zitat von brechi
hab genau so viele HW BPs wie du, eigentlich reicht immer einer oder max 2

Noch ;)

Zitat:

Zitat von brechi
ich benutze ollydbg der kennt auch memory breakpoints (wird über VirtualProtect gemacht)

Danke. Teste ich mal aus.
Memory-BPX _ohne_ HW-BPX als Grundlage sind technischer Schwachsinn weil nicht zuverlässig. Noch gibt es zumindest keine Grundlage auf HW-Ebene die das erlauben würde. Aber solange es dir dient *g*

brechi 25. Mai 2005 13:06

Re: Neue Version des XP Usermanger ist fertig!
 
Delphi-Quellcode:
function IsDebuggerPresent: boolean; stdcall;
asm
  MOV    EAX, DWORD PTR FS:[$30]  
  TEST   EAX, EAX
  JS     @@W9X
@@WNT:
  MOV    EAX, FS:[$18]
  MOV    EAX, [EAX+$30]
  MOVZX  EAX, [EAX+2]
  RET
@@W9X:
  MOV    EAX, [$BFFC9CE4]
  MOV    ECX, [EAX]
  CMP    DWORD PTR [ECX+$54], 1
  SBB    EAX, EAX
  INC    EAX
  RET
end;
sollte unter NT, 2k, xp, 95, 98, 98 SE und ME funzen also NT / 9x wobei ichs net auf ME testen konnte :>
kumpel meinte aber es sollte stimmen

mit dem u am anfang haste recht

Luckie 27. Mai 2005 11:45

Re: Shareware Versionen vor Cracker schützen
 
Ich habe diese Postings vom XP Usermanager Thread abgespalten, da sie mit ihm eigentlich nichts zu tun haben. Ich habe im ertsen Posting wieder die Demo Version angehangen, um die es hier geht.

lbccaleb 15. Apr 2009 16:47

Re: Shareware Versionen vor Cracker schützen
 
EDIT:

UPPS, falscher Thread :(

Douglas Quintaine 15. Apr 2009 16:50

Re: Shareware Versionen vor Cracker schützen
 
Du bist im falschen Thread.

http://www.delphipraxis.net/internal...t.php?t=156077


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz