me molesta que se crean dioses de assembly

Iniciado por Weeken, 12 Diciembre 2012, 08:08 AM

0 Miembros y 1 Visitante están viendo este tema.

Weeken

me molesta que se crean dioses de asembly  no es que sea envidioso si no me molesta que no tenga competencia   no hay divercion >:D , alguien quiere hacerle la competencia  con la programacion asm     ::)

http://www.facebook.com/AssemblyTeam2012

Eternal Idol

No me interesa en lo mas minimo :silbar: Mejor concentrate en tus cosas.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

_Enko

Pide login y no tengo cuenta de facebook  :silbar:

problema resuelto  :rolleyes:

x64core

Todo lo que veo son niños que saben como usar el conjunto de instrucciones y que han leído sobre un tutorial de injeccion de DLL, porque segun leí su máxima creación ha sido un DLL injector. Aquí esta (binario):

http://www.sendspace.com/file/aeo0bz

DLL:
http://www.sendspace.com/file/xoi4b6

Lo han subido con adf.ly que redirige a adtu.be y luego a la descarga, Utilizan BoxedApp Packer ( .stub ).

_Enko

por lo menos no programan con Turbo C y "conio".h :silbar:

x64core

#5
Además aquí se puede mirar que tipo de programadores son, algunos trozos de ese pedazo de basura:

00401885  |.  6A 03         PUSH 3                                   ; |Mode = OPEN_EXISTING
00401887  |.  6A 00         PUSH 0                                   ; |pSecurity = NULL
00401889  |.  6A 03         PUSH 3                                   ; |ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE
0040188B  |.  68 00000080   PUSH 80000000                            ; |Access = GENERIC_READ
00401890  |.  68 EC5C4000   PUSH Assembly.00405CEC                   ; |FileName = ""
00401895  |.  E8 1E080000   CALL Assembly.004020B8                   ; \CreateFileA
0040189A  |.  A3 48754000   MOV DWORD PTR DS:[407548],EAX
0040189F  |.  6A 00         PUSH 0                                   ; /pOverlapped = NULL
004018A1  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]             ; |
004018A4  |.  50            PUSH EAX                                 ; |pBytesRead
004018A5  |.  6A 01         PUSH 1                                   ; |BytesToRead = 1
004018A7  |.  68 50754000   PUSH Assembly.00407550                   ; |Buffer = Assembly.00407550
004018AC  |.  FF35 48754000 PUSH DWORD PTR DS:[407548]               ; |hFile = NULL
004018B2  |.  E8 4F080000   CALL Assembly.00402106                   ; \ReadFile
004018B7  |.  FF35 48754000 PUSH DWORD PTR DS:[407548]               ; /hObject = NULL
004018BD  |.  E8 EA070000   CALL Assembly.004020AC                   ; \CloseHandle
004018C2  |.  68 50754000   PUSH Assembly.00407550                   ; /Text = ""
004018C7  |.  68 ED030000   PUSH 3ED                                 ; |ControlID = 3ED (1005.)
004018CC  |.  FF35 A0424000 PUSH DWORD PTR DS:[4042A0]               ; |hWnd = NULL
004018D2  |.  E8 C5080000   CALL Assembly.0040219C                   ; \SetDlgItemTextA
004018D7  |.  68 00010000   PUSH 100                                 ; /IsSigned = TRUE
004018DC  |.  68 50754000   PUSH Assembly.00407550                   ; |pSuccess = Assembly.00407550
004018E1  |.  68 ED030000   PUSH 3ED                                 ; |ControlID = 3ED (1005.)


llamada a CreateFile sin verificar si el retorno es un handle valido o un valor invalido.
otro más:

00401967  |.  68 3F000F00   PUSH 0F003F                              ; |Access = KEY_ALL_ACCESS
0040196C  |.  6A 00         PUSH 0                                   ; |Reserved = 0
0040196E  |.  68 CA404000   PUSH Assembly.004040CA                   ; |Subkey = "Software\Softnyx\RakionLS"
00401973  |.  68 02000080   PUSH 80000002                            ; |hKey = HKEY_LOCAL_MACHINE
00401978  |.  E8 95060000   CALL Assembly.00402012                   ; \RegOpenKeyExA
0040197D  |.  68 A8484000   PUSH Assembly.004048A8                   ; /pBufSize = Assembly.004048A8
00401982  |.  6A 00         PUSH 0                                   ; |Buffer = NULL
00401984  |.  6A 00         PUSH 0                                   ; |pValueType = NULL
00401986  |.  6A 00         PUSH 0                                   ; |Reserved = NULL
00401988  |.  68 E4404000   PUSH Assembly.004040E4                   ; |ValueName = "Location"
0040198D  |.  FF35 14474000 PUSH DWORD PTR DS:[404714]               ; |hKey = 0
00401993  |.  E8 80060000   CALL Assembly.00402018                   ; \RegQueryValueExA
00401998  |.  68 A8484000   PUSH Assembly.004048A8                   ; /pBufSize = Assembly.004048A8
0040199D  |.  68 18474000   PUSH Assembly.00404718                   ; |Buffer = Assembly.00404718
004019A2  |.  6A 00         PUSH 0                                   ; |pValueType = NULL
004019A4  |.  6A 00         PUSH 0                                   ; |Reserved = NULL
004019A6  |.  68 E4404000   PUSH Assembly.004040E4                   ; |ValueName = "Location"
004019AB  |.  FF35 14474000 PUSH DWORD PTR DS:[404714]               ; |hKey = 0
004019B1  |.  E8 62060000   CALL Assembly.00402018                   ; \RegQueryValueExA
004019B6  |.  FF35 14474000 PUSH DWORD PTR DS:[404714]               ; /hKey = NULL
004019BC  |.  E8 4B060000   CALL Assembly.0040200C                   ; \RegCloseKey
004019C1  |.  68 EF404000   PUSH Assembly.004040EF                   ; /StringToAdd = "\Bin\"


Y al parecer no conocen los array de cadenas y combinarlo con bucles:

004019D5  |.  68 AC484000   PUSH Assembly.004048AC                   ; |String1 = Assembly.004048AC
004019DA  |.  E8 45070000   CALL Assembly.00402124                   ; \lstrcpyA
004019DF  |.  68 AC484000   PUSH Assembly.004048AC                   ; /String2 = ""
004019E4  |.  68 BC504000   PUSH Assembly.004050BC                   ; |String1 = Assembly.004050BC
004019E9  |.  E8 36070000   CALL Assembly.00402124                   ; \lstrcpyA
004019EE  |.  68 03414000   PUSH Assembly.00404103                   ; /StringToAdd = "msvcr71.dll"
004019F3  |.  68 BC504000   PUSH Assembly.004050BC                   ; |ConcatString = ""
004019F8  |.  E8 21070000   CALL Assembly.0040211E                   ; \lstrcatA
004019FD  |.  68 AC484000   PUSH Assembly.004048AC                   ; /String2 = ""
00401A02  |.  68 AC4C4000   PUSH Assembly.00404CAC                   ; |String1 = Assembly.00404CAC
00401A07  |.  E8 18070000   CALL Assembly.00402124                   ; \lstrcpyA
00401A0C  |.  68 0F414000   PUSH Assembly.0040410F                   ; /StringToAdd = "msvcr72.dll"
00401A11  |.  68 AC4C4000   PUSH Assembly.00404CAC                   ; |ConcatString = ""
00401A16  |.  E8 03070000   CALL Assembly.0040211E                   ; \lstrcatA
00401A1B  |.  68 AC484000   PUSH Assembly.004048AC                   ; /String2 = ""
00401A20  |.  68 CC544000   PUSH Assembly.004054CC                   ; |String1 = Assembly.004054CC
00401A25  |.  E8 FA060000   CALL Assembly.00402124                   ; \lstrcpyA
00401A2A  |.  68 1B414000   PUSH Assembly.0040411B                   ; /StringToAdd = "msvcr73.dll"
00401A2F  |.  68 CC544000   PUSH Assembly.004054CC                   ; |ConcatString = ""
00401A34  |.  E8 E5060000   CALL Assembly.0040211E                   ; \lstrcatA
00401A39  |.  68 AC484000   PUSH Assembly.004048AC                   ; /String2 = ""
00401A3E  |.  68 EC5C4000   PUSH Assembly.00405CEC                   ; |String1 = Assembly.00405CEC
00401A43  |.  E8 DC060000   CALL Assembly.00402124                   ; \lstrcpyA
00401A48  |.  68 38414000   PUSH Assembly.00404138                   ; /StringToAdd = "Micro.txt"
00401A4D  |.  68 EC5C4000   PUSH Assembly.00405CEC                   ; |ConcatString = ""
00401A52  |.  E8 C7060000   CALL Assembly.0040211E                   ; \lstrcatA


00401BA3  |.  E8 D1F5FFFF   CALL Assembly.00401179
00401BA8  |.  68 2D010000   PUSH 12D                                 ; /RsrcName = 301.
00401BAD  |.  FF35 A4424000 PUSH DWORD PTR DS:[4042A4]               ; |hInst = NULL
00401BB3  |.  E8 C6050000   CALL Assembly.0040217E                   ; \LoadBitmapA
00401BB8  |.  A3 E0424000   MOV DWORD PTR DS:[4042E0],EAX
00401BBD  |.  68 2E010000   PUSH 12E                                 ; /RsrcName = 302.
00401BC2  |.  FF35 A4424000 PUSH DWORD PTR DS:[4042A4]               ; |hInst = NULL
00401BC8  |.  E8 B1050000   CALL Assembly.0040217E                   ; \LoadBitmapA
00401BCD  |.  A3 E4424000   MOV DWORD PTR DS:[4042E4],EAX
00401BD2  |.  68 2F010000   PUSH 12F                                 ; /RsrcName = 303.
00401BD7  |.  FF35 A4424000 PUSH DWORD PTR DS:[4042A4]               ; |hInst = NULL
00401BDD  |.  E8 9C050000   CALL Assembly.0040217E                   ; \LoadBitmapA
00401BE2  |.  A3 E8424000   MOV DWORD PTR DS:[4042E8],EAX
00401BE7  |.  68 30010000   PUSH 130                                 ; /RsrcName = 304.
00401BEC  |.  FF35 A4424000 PUSH DWORD PTR DS:[4042A4]               ; |hInst = NULL
00401BF2  |.  E8 87050000   CALL Assembly.0040217E                   ; \LoadBitmapA
00401BF7  |.  A3 EC424000   MOV DWORD PTR DS:[4042EC],EAX
00401BFC  |.  68 31010000   PUSH 131                                 ; /RsrcName = 305.
00401C01  |.  FF35 A4424000 PUSH DWORD PTR DS:[4042A4]               ; |hInst = NULL
00401C07  |.  E8 72050000   CALL Assembly.0040217E                   ; \LoadBitmapA
00401C0C  |.  A3 F0424000   MOV DWORD PTR DS:[4042F0],EAX
00401C11  |.  68 32010000   PUSH 132                                 ; /RsrcName = 306.
00401C16  |.  FF35 A4424000 PUSH DWORD PTR DS:[4042A4]               ; |hInst = NULL
00401C1C  |.  E8 5D050000   CALL Assembly.0040217E                   ; \LoadBitmapA
00401C21  |.  A3 F4424000   MOV DWORD PTR DS:[4042F4],EAX
00401C26  |.  68 33010000   PUSH 133                                 ; /RsrcName = 307.
00401C2B  |.  FF35 A4424000 PUSH DWORD PTR DS:[4042A4]               ; |hInst = NULL
00401C31  |.  E8 48050000   CALL Assembly.0040217E                   ; \LoadBitmapA
00401C36  |.  A3 F8424000   MOV DWORD PTR DS:[4042F8],EAX
00401C3B  |.  68 34010000   PUSH 134                                 ; /RsrcName = 308.
00401C40  |.  FF35 A4424000 PUSH DWORD PTR DS:[4042A4]               ; |hInst = NULL
00401C46  |.  E8 33050000   CALL Assembly.0040217E                   ; \LoadBitmapA
00401C4B  |.  A3 FC424000   MOV DWORD PTR DS:[4042FC],EAX



Solo saben hacer llamada tras llamada, Ellos deberían empezar con .net talvez puedan hacerlo mejor

Weeken

Cita de: Eternal Idol 7D en 12 Diciembre 2012, 11:07 AM
No me interesa en lo mas minimo :silbar: Mejor concentrate en tus cosas.

estoy bien ya no me incomodan me ayudaron  las aclaraciones  de x64Core  ;D

MicroSword

Citarme molesta que se crean dioses de asembly  no es que sea envidioso si no me molesta que no tenga competencia   no hay divercion >:D , alguien quiere hacerle la competencia  con la programacion asm     ::)

http://www.facebook.com/AssemblyTeam2012

Me registré en este foro simplemente para responder a tu incomodidad.

El hecho de que hagamos cheats para el juego rakion no significa que seamos unos dioses en la programación, ya que lo que hacemos nosotros no es más que aplicar algo de ingeniería inversa es todo...

Nos hacemos llamar "Assembly Team" porque programamos en ASM, y en honor al lenguaje nos colocamos ese nombre.

Disculpa que te lo diga yo, pero al hacer éste tipo de temas, te hace quedar como un envidioso o celoso.


Cita de: x64Core en 12 Diciembre 2012, 21:15 PM
Además aquí se puede mirar que tipo de programadores son, algunos trozos de ese pedazo de basura:

00401885  |.  6A 03         PUSH 3                                   ; |Mode = OPEN_EXISTING
00401887  |.  6A 00         PUSH 0                                   ; |pSecurity = NULL
00401889  |.  6A 03         PUSH 3                                   ; |ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE
0040188B  |.  68 00000080   PUSH 80000000                            ; |Access = GENERIC_READ
00401890  |.  68 EC5C4000   PUSH Assembly.00405CEC                   ; |FileName = ""
00401895  |.  E8 1E080000   CALL Assembly.004020B8                   ; \CreateFileA
0040189A  |.  A3 48754000   MOV DWORD PTR DS:[407548],EAX
0040189F  |.  6A 00         PUSH 0                                   ; /pOverlapped = NULL
004018A1  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]             ; |
004018A4  |.  50            PUSH EAX                                 ; |pBytesRead
004018A5  |.  6A 01         PUSH 1                                   ; |BytesToRead = 1
004018A7  |.  68 50754000   PUSH Assembly.00407550                   ; |Buffer = Assembly.00407550
004018AC  |.  FF35 48754000 PUSH DWORD PTR DS:[407548]               ; |hFile = NULL
004018B2  |.  E8 4F080000   CALL Assembly.00402106                   ; \ReadFile
004018B7  |.  FF35 48754000 PUSH DWORD PTR DS:[407548]               ; /hObject = NULL
004018BD  |.  E8 EA070000   CALL Assembly.004020AC                   ; \CloseHandle
004018C2  |.  68 50754000   PUSH Assembly.00407550                   ; /Text = ""
004018C7  |.  68 ED030000   PUSH 3ED                                 ; |ControlID = 3ED (1005.)
004018CC  |.  FF35 A0424000 PUSH DWORD PTR DS:[4042A0]               ; |hWnd = NULL
004018D2  |.  E8 C5080000   CALL Assembly.0040219C                   ; \SetDlgItemTextA
004018D7  |.  68 00010000   PUSH 100                                 ; /IsSigned = TRUE
004018DC  |.  68 50754000   PUSH Assembly.00407550                   ; |pSuccess = Assembly.00407550
004018E1  |.  68 ED030000   PUSH 3ED                                 ; |ControlID = 3ED (1005.)


llamada a CreateFile sin verificar si el retorno es un handle valido o un valor invalido.
otro más:

00401967  |.  68 3F000F00   PUSH 0F003F                              ; |Access = KEY_ALL_ACCESS
0040196C  |.  6A 00         PUSH 0                                   ; |Reserved = 0
0040196E  |.  68 CA404000   PUSH Assembly.004040CA                   ; |Subkey = "Software\Softnyx\RakionLS"
00401973  |.  68 02000080   PUSH 80000002                            ; |hKey = HKEY_LOCAL_MACHINE
00401978  |.  E8 95060000   CALL Assembly.00402012                   ; \RegOpenKeyExA
0040197D  |.  68 A8484000   PUSH Assembly.004048A8                   ; /pBufSize = Assembly.004048A8
00401982  |.  6A 00         PUSH 0                                   ; |Buffer = NULL
00401984  |.  6A 00         PUSH 0                                   ; |pValueType = NULL
00401986  |.  6A 00         PUSH 0                                   ; |Reserved = NULL
00401988  |.  68 E4404000   PUSH Assembly.004040E4                   ; |ValueName = "Location"
0040198D  |.  FF35 14474000 PUSH DWORD PTR DS:[404714]               ; |hKey = 0
00401993  |.  E8 80060000   CALL Assembly.00402018                   ; \RegQueryValueExA
00401998  |.  68 A8484000   PUSH Assembly.004048A8                   ; /pBufSize = Assembly.004048A8
0040199D  |.  68 18474000   PUSH Assembly.00404718                   ; |Buffer = Assembly.00404718
004019A2  |.  6A 00         PUSH 0                                   ; |pValueType = NULL
004019A4  |.  6A 00         PUSH 0                                   ; |Reserved = NULL
004019A6  |.  68 E4404000   PUSH Assembly.004040E4                   ; |ValueName = "Location"
004019AB  |.  FF35 14474000 PUSH DWORD PTR DS:[404714]               ; |hKey = 0
004019B1  |.  E8 62060000   CALL Assembly.00402018                   ; \RegQueryValueExA
004019B6  |.  FF35 14474000 PUSH DWORD PTR DS:[404714]               ; /hKey = NULL
004019BC  |.  E8 4B060000   CALL Assembly.0040200C                   ; \RegCloseKey
004019C1  |.  68 EF404000   PUSH Assembly.004040EF                   ; /StringToAdd = "\Bin\"


Y al parecer no conocen los array de cadenas y combinarlo con bucles:

004019D5  |.  68 AC484000   PUSH Assembly.004048AC                   ; |String1 = Assembly.004048AC
004019DA  |.  E8 45070000   CALL Assembly.00402124                   ; \lstrcpyA
004019DF  |.  68 AC484000   PUSH Assembly.004048AC                   ; /String2 = ""
004019E4  |.  68 BC504000   PUSH Assembly.004050BC                   ; |String1 = Assembly.004050BC
004019E9  |.  E8 36070000   CALL Assembly.00402124                   ; \lstrcpyA
004019EE  |.  68 03414000   PUSH Assembly.00404103                   ; /StringToAdd = "msvcr71.dll"
004019F3  |.  68 BC504000   PUSH Assembly.004050BC                   ; |ConcatString = ""
004019F8  |.  E8 21070000   CALL Assembly.0040211E                   ; \lstrcatA
004019FD  |.  68 AC484000   PUSH Assembly.004048AC                   ; /String2 = ""
00401A02  |.  68 AC4C4000   PUSH Assembly.00404CAC                   ; |String1 = Assembly.00404CAC
00401A07  |.  E8 18070000   CALL Assembly.00402124                   ; \lstrcpyA
00401A0C  |.  68 0F414000   PUSH Assembly.0040410F                   ; /StringToAdd = "msvcr72.dll"
00401A11  |.  68 AC4C4000   PUSH Assembly.00404CAC                   ; |ConcatString = ""
00401A16  |.  E8 03070000   CALL Assembly.0040211E                   ; \lstrcatA
00401A1B  |.  68 AC484000   PUSH Assembly.004048AC                   ; /String2 = ""
00401A20  |.  68 CC544000   PUSH Assembly.004054CC                   ; |String1 = Assembly.004054CC
00401A25  |.  E8 FA060000   CALL Assembly.00402124                   ; \lstrcpyA
00401A2A  |.  68 1B414000   PUSH Assembly.0040411B                   ; /StringToAdd = "msvcr73.dll"
00401A2F  |.  68 CC544000   PUSH Assembly.004054CC                   ; |ConcatString = ""
00401A34  |.  E8 E5060000   CALL Assembly.0040211E                   ; \lstrcatA
00401A39  |.  68 AC484000   PUSH Assembly.004048AC                   ; /String2 = ""
00401A3E  |.  68 EC5C4000   PUSH Assembly.00405CEC                   ; |String1 = Assembly.00405CEC
00401A43  |.  E8 DC060000   CALL Assembly.00402124                   ; \lstrcpyA
00401A48  |.  68 38414000   PUSH Assembly.00404138                   ; /StringToAdd = "Micro.txt"
00401A4D  |.  68 EC5C4000   PUSH Assembly.00405CEC                   ; |ConcatString = ""
00401A52  |.  E8 C7060000   CALL Assembly.0040211E                   ; \lstrcatA


00401BA3  |.  E8 D1F5FFFF   CALL Assembly.00401179
00401BA8  |.  68 2D010000   PUSH 12D                                 ; /RsrcName = 301.
00401BAD  |.  FF35 A4424000 PUSH DWORD PTR DS:[4042A4]               ; |hInst = NULL
00401BB3  |.  E8 C6050000   CALL Assembly.0040217E                   ; \LoadBitmapA
00401BB8  |.  A3 E0424000   MOV DWORD PTR DS:[4042E0],EAX
00401BBD  |.  68 2E010000   PUSH 12E                                 ; /RsrcName = 302.
00401BC2  |.  FF35 A4424000 PUSH DWORD PTR DS:[4042A4]               ; |hInst = NULL
00401BC8  |.  E8 B1050000   CALL Assembly.0040217E                   ; \LoadBitmapA
00401BCD  |.  A3 E4424000   MOV DWORD PTR DS:[4042E4],EAX
00401BD2  |.  68 2F010000   PUSH 12F                                 ; /RsrcName = 303.
00401BD7  |.  FF35 A4424000 PUSH DWORD PTR DS:[4042A4]               ; |hInst = NULL
00401BDD  |.  E8 9C050000   CALL Assembly.0040217E                   ; \LoadBitmapA
00401BE2  |.  A3 E8424000   MOV DWORD PTR DS:[4042E8],EAX
00401BE7  |.  68 30010000   PUSH 130                                 ; /RsrcName = 304.
00401BEC  |.  FF35 A4424000 PUSH DWORD PTR DS:[4042A4]               ; |hInst = NULL
00401BF2  |.  E8 87050000   CALL Assembly.0040217E                   ; \LoadBitmapA
00401BF7  |.  A3 EC424000   MOV DWORD PTR DS:[4042EC],EAX
00401BFC  |.  68 31010000   PUSH 131                                 ; /RsrcName = 305.
00401C01  |.  FF35 A4424000 PUSH DWORD PTR DS:[4042A4]               ; |hInst = NULL
00401C07  |.  E8 72050000   CALL Assembly.0040217E                   ; \LoadBitmapA
00401C0C  |.  A3 F0424000   MOV DWORD PTR DS:[4042F0],EAX
00401C11  |.  68 32010000   PUSH 132                                 ; /RsrcName = 306.
00401C16  |.  FF35 A4424000 PUSH DWORD PTR DS:[4042A4]               ; |hInst = NULL
00401C1C  |.  E8 5D050000   CALL Assembly.0040217E                   ; \LoadBitmapA
00401C21  |.  A3 F4424000   MOV DWORD PTR DS:[4042F4],EAX
00401C26  |.  68 33010000   PUSH 133                                 ; /RsrcName = 307.
00401C2B  |.  FF35 A4424000 PUSH DWORD PTR DS:[4042A4]               ; |hInst = NULL
00401C31  |.  E8 48050000   CALL Assembly.0040217E                   ; \LoadBitmapA
00401C36  |.  A3 F8424000   MOV DWORD PTR DS:[4042F8],EAX
00401C3B  |.  68 34010000   PUSH 134                                 ; /RsrcName = 308.
00401C40  |.  FF35 A4424000 PUSH DWORD PTR DS:[4042A4]               ; |hInst = NULL
00401C46  |.  E8 33050000   CALL Assembly.0040217E                   ; \LoadBitmapA
00401C4B  |.  A3 FC424000   MOV DWORD PTR DS:[4042FC],EAX



Solo saben hacer llamada tras llamada, Ellos deberían empezar con .net talvez puedan hacerlo mejor


x64Core, veo que tienes conocimiento en ingeniería inversa como al igual en otros lenguajes de programación, te felicito por eso...

Ahora si bien explico el código...

Creo que pudiste darte cuenta que lo que hago es buscar la ruta exacta del juego mediante el registro, ya que el método de "inyección" de liberías que se está usando en los juegos es método reemplazador.


Empezemos con el RegOpenKey, como verás están declaradas el nombre de las liberías y búffers que están vacíos, en éstos búffers simplemente uso apis para copiar la ruta anteriormente obtenida con RegOpenKey y añadirle a ese búffer el nombre de la libería.

Pudiera hacerse ésto con búcles, incluso antes lo hacía, pero más fácil es usar lstrcopy y lstrcat, todo sea por facilitar el trabajo.


ahora vamos con el CreateFile, como verás al inicio del programa se hace es una lectura hacia un documento... Tal vez si hubieses pulsado la opción "RUN" en tu depurador te dieras cuenta más a fondo del trabajo que se hace.

Me imagino que te preguntaste por qué no comparamos si el handle devuelto por CreateFile es válido o no?

Simple. Esto es cuestión de cómo lo quiera hacer el programador, y cada quién tiene su manera lógica de programar, ésta es la mía.

Bien cómo la ruta siempre va a ser devuelta por el RegOpenKey, siempre voy a tener la ruta exacta de dónde voy a leer el archivo a menos que el juego no esté instalado en la PC y el programa no encontraría la ruta, es por ésto es que el inyector es solo para los que tienen el juego, ahora que pasa si es la primera vez que se está usando el ejecutable?

Como no es más que una simple lectura, en el listbox no aparecerá nada hasta que se haya incluído una ruta a la listbox, ya que al incluír una ruta a la listbox valga la redundancia, se crea el documento para cuando el programa sea ejecutado lea esa ese documento.

Ejemplo:

Primera vez que lo uso:



Selecciono una libería:



Y posteriormente cuando el programa sea ejecutado o usado denuevo mostrará la libería que se usó anteriormente:



Básicamente esa lectura y creación del documento es usada como memoria, búffer de memoria, base de datos, o como se quiera llamar. Ya las demás llamadas de las otras apis son simplemente recursos para el GUI del programa.

Te respondi a ti también porque básicamente nos insultas sin haber evaluado el contenido a fondo. Depurar un programa es sumamente fácil y más si no está completamente packeado ya que en éste caso en el pack no se encuentra un simple ejecutable...

Creo que deberías examinar más a fondo y leer bien el código para dar tu crítica constructiva o desctructiva.

Saludos desde Venezuela   ;)

















Eternal Idol

#8
Que el archivo exista no implica que puedas abrirlo (podes no tener permisos, puede que alguien lo haya abierto en manera exclusiva, etc.), siempre hay que comprobar el valor de retorno de las funciones, estan para algo.

PD. En lo demas concuerdo y haber creado este hilo fue un error, es mas hasta podria decirse que yo cometi un error al no haberlo borrado ...
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón