Autor
|
Tema: me molesta que se crean dioses de assembly (Leído 6,042 veces)
|
Weeken
Desconectado
Mensajes: 291
piensa en gratis
|
me molesta que se crean dioses de asembly no es que sea envidioso si no me molesta que no tenga competencia no hay divercion , alguien quiere hacerle la competencia con la programacion asm http://www.facebook.com/AssemblyTeam2012
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
No me interesa en lo mas minimo Mejor concentrate en tus cosas.
|
|
|
En línea
|
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 problema resuelto
|
|
|
En línea
|
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
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/aeo0bzDLL: http://www.sendspace.com/file/xoi4b6Lo han subido con adf.ly que redirige a adtu.be y luego a la descarga, Utilizan BoxedApp Packer ( .stub ).
|
|
|
En línea
|
|
|
|
_Enko
|
por lo menos no programan con Turbo C y "conio".h
|
|
|
En línea
|
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
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
|
|
« Última modificación: 12 Diciembre 2012, 21:54 pm por x64Core »
|
En línea
|
|
|
|
Weeken
Desconectado
Mensajes: 291
piensa en gratis
|
No me interesa en lo mas minimo Mejor concentrate en tus cosas. estoy bien ya no me incomodan me ayudaron las aclaraciones de x64Core
|
|
|
En línea
|
|
|
|
MicroSword
Desconectado
Mensajes: 1
|
me molesta que se crean dioses de asembly no es que sea envidioso si no me molesta que no tenga competencia no hay divercion , 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. 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
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
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 ...
|
|
« Última modificación: 14 Diciembre 2012, 16:30 pm por Eternal Idol 7D »
|
En línea
|
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
|
|
|
|
|