Bueno para empezar, no soy de los que buscan las respuestas, sin haber antes intentado llegar a ellas, yo solo quisiera haceros una preguntae para que mas o menos me haga una idea, resulta que tengo un programa llamado "mp3 cd converter", este programa presenta la dificultad de que no te lleva al mensaje ese que anuncia que hay que registrarlo, es que ese mensaje buscandolo ni aparece, entonces me pregunto, que tecnica se podia mirar para seguir intentandolo?
bueno una vez el programa pide el registro, hay uans funciones como estas.
00469A30 |. FF15 6C114700 CALL DWORD PTR DS:
aqui esta llamando al serial?
00469A36 |. F645 D0 01 TEST BYTE PTR SS:[EBP-30],1
esto de test lo comprueba?
00469A3A 74 11 JE SHORT MP3CDCon.00469A4D
aqui es su condicional?
Bueno igual estoy diciendo paridas, pero es lo poco que creo saber aparte que poco a poco miro mas de emsamblador
holas! badcode, a ver busca y prueba metiendo un breakpoint en la api GetWindowTextA o si no en GetDItemtextA , a ver si rompe en algunas d ellas , si es asi ya solo t resta tracear... suerte :P
bueno ese call puede que sea o no, entra en el y mira quer hace, o modifica el salto a ver que pasa.
Citara ver busca y prueba metiendo un breakpoint en la api GetWindowTextA o si no en GetDItemtextA
dyablo poeta no aparecen esas apis, es curioso..., le dado a ctrl+n y no aparecen
Citarbueno ese call puede que sea o no, entra en el y mira quer hace, o modifica el salto a ver que pasa.
una vez se ejecuta esa call pide el registro,el programa solo avanza si pasas de registrarte, he modificado el "je short" por "jne short" a estas instrucciones le siguen estas otras,
00469A3C 0FB745 D4 MOVZX EAX,WORD PTR SS:[EBP-2C]
00469A40 EB 0E JMP SHORT MP3CDCon.00469A50
00469A42 |> 803E 20 /CMP BYTE PTR DS:[ESI],20
00469A45 |.^76 D8 |JBE SHORT MP3CDCon.00469A1F
00469A47 |. 46 |INC ESI
00469A48 |. 8975 8C |MOV DWORD PTR SS:[EBP-74],ESI
00469A4B |.^EB F5 \JMP SHORT MP3CDCon.00469A42
00469A4D |> 6A 0A PUSH 0A
00469A4F |. 58 POP EAX
00469A50 |> 50 PUSH EAX
00469A51 |. 56 PUSH ESI
00469A52 |. 53 PUSH EBX
00469A53 |. 53 PUSH EBX ; /pModule
00469A54 |. FF15 68114700 CALL DWORD PTR DS:[<&KERNEL32.GetModuleH>; \GetModuleHandleA
00469A5A |. 50 PUSH EAX
00469A5B |. E8 94000000 CALL MP3CDCon.00469AF4
00469A60 |. 8945 98 MOV DWORD PTR SS:[EBP-68],EAX
00469A63 |. 50 PUSH EAX ; /status
00469A64 |. FF15 BC184700 CALL DWORD PTR DS:[<&MSVCRT.exit>] ; \exit
00469A6A |. 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14]
00469A6D |. 8B08 MOV ECX,DWORD PTR DS:[EAX]
00469A6F |. 8B09 MOV ECX,DWORD PTR DS:[ECX]
00469A71 |. 894D 88 MOV DWORD PTR SS:[EBP-78],ECX
00469A74 |. 50 PUSH EAX
00469A75 |. 51 PUSH ECX
00469A76 |. E8 2D000000 CALL <JMP.&MSVCRT._XcptFilter>
00469A7B |. 59 POP ECX
00469A7C |. 59 POP ECX
00469A7D \. C3 RETN
gracias.
solo dandole al trace se queda aqui
00469A08 |> 46 /INC ESI
00469A09 |. 8975 8C |MOV DWORD PTR SS:[EBP-74],ESI
00469A0C |. 8A06 |MOV AL,BYTE PTR DS:[ESI]
00469A0E |. 3AC3 |CMP AL,BL
00469A10 |. 74 04 |JE SHORT MP3CDCon.00469A16
00469A12 |. 3C 22 |CMP AL,22
00469A14 |.^75 F2 \JNZ SHORT MP3CDCon.00469A08
bien eso es un bucle,pero que mueve de esi a al? ¿y que contiene al y bl? eso lo tienes que ver tu aunque pongas codigo solo se puede suponer.
ey badcode no quiero kitarte la emocion pero estoy viendo el mp3 cd converte intenta ponerle un breakpoint en la api MSVCRT._mbscmp luego intenta registrarte y tendra lo anhelado j3j3j3...
Bueno Dyablo poeta le puse un keygen al asunto para ver si luego podia ver cambios, no vi nada jejeje, ahora lo malo sera que para probar lo me has dicho tendria que pedirme el registro y no lo pide, se a registrado, estoy bsucando un programa para monitorizar los registros, ahora le pase el regcleaner y haber si me deja instalarlo de nuevo y asi poder ponerle breakpoint aqui no ?
00469B28 |. FF15 F4184700 CALL DWORD PTR DS:[<&MSVCRT._setmbcp>] ; \_setmbcp
por cierto si es aqui que funcion tiene msvcrt?
Citarbien eso es un bucle,pero que mueve de esi a al? ¿y que contiene al y bl? eso lo tienes que ver tu aunque pongas codigo solo se puede suponer.
podia ser el serial......
Citarpor cierto si es aqui que funcion tiene msvcrt?
es la libreria donde se encuentra la funcion.
Citarpodia ser el serial......
si antes de usar el keygen hicieses lo que dijo dyablo poeta....... tendrias tu serial en los morros.
puedes poner un bpx en CreateFile o en RegOpenKey para ver si lee de algun archivo o del registro que efectivamente estas registrado.por lo general si es de un archivo con borrarlo te volvera a pedir que lo registres y si es del registro con borrarle los valores lo mismo.
Citarpuedes poner un bpx en CreateFile o en RegOpenKey para ver si lee de algun archivo o del registro que efectivamente estas registrado
no entiendo eso que dicie, eso se hace con el olly o es un comando de windows?
Citarsi antes de usar el keygen hicieses lo que dijo dyablo poeta....... tendrias tu serial en los morros.
quiere decir que la instruccion que me dio donde debia de poner breakpoint me daba el serial?.
pues he desinstalado y he pasado limpiadores del registro y vuelvo a instalar y me sale ya registrado, aparte decir que el programa es lo de menos, lo he cogido a boleo para practica.
saludos.
Citarno entiendo eso que dicie, eso se hace con el olly o es un comando de windows?
hombre si estas depurando el programa ¿donde crees que lo pondras? bpx=breakpoint.
Citarquiere decir que la instruccion que me dio donde debia de poner breakpoint me daba el serial?.
de pleno
Citarhombre si estas depurando el programa ¿donde crees que lo pondras? bpx=breakpoint.
y yo pensando en el reg de windows, vale pues haber si me deshago de lo registrado, por cierto en el olly hay manera de buscar por ejemplo esto :[<&MSVCRT._setmbcp>]
Citarpor cierto en el olly hay manera de buscar por ejemplo esto :[<&MSVCRT._setmbcp>]
que quieres decir con esto? para poner un bpx ctrl + n y lo buscas, una vez encontrado: con el boton secundario set breakpoint on every reference, para buscar referencias a la funcion sobre ella presiona enter.
mira acabo de mirar el programa, para que te pida otra vez el registro borra el archivo RKACCUBURN.INI, esta en system32.
00469B28 |. FF15 F4184700 CALL DWORD PTR DS:[<&MSVCRT._setmbcp>] ; \_setmbcp
00469B2E |. 59 POP ECX
00469B2F |> 6A 01 PUSH 1
00469B31 |. 58 POP EAX
00469B32 \. C2 0800 RETN 8
00469B35 . E9 00000000 JMP MP3CDCon.00469B3A
00469B3A > 68 00060000 PUSH 600
00469B3F . 6A 00 PUSH 0
00469B41 . E8 C6FFFFFF CALL MP3CDCon.00469B0C
00469B46 . A2 482D6600 MOV BYTE PTR DS:[662D48],AL
00469B4B . C3 RETN
00469B4C $-FF25 C8174700 JMP DWORD PTR DS:[<&MFC42.#1576>] ; MFC42.#1576
si es aqui donde debia de llegar?,el serial esta ams adelante?
Jaja que lios me monto, bueno ya estamos en el final.
Citarsi es aqui donde debia de llegar?,el serial esta ams adelante?
no se tu sabras, tu pantalla la ves tu. los demas no podemos verla. pero fijate en que funcion estas poniendo los bpx pq esa no es la que te dijo DYABLO POETA, a si que no se en que parte del programa andaras.
0042ED28 . FF15 04194700 CALL DWORD PTR DS:[<&MSVCRT._mbscmp>] ; \_mbscmp
0042ED2E . 83C4 08 ADD ESP,8
0042ED31 . 85C0 TEST EAX,EAX
0042ED33 74 42 JE SHORT(AQUI JNE) MP3CDCon.0042ED77
0042ED35 6A 40 PUSH 40
0042ED37 . 68 94000000 PUSH 94
0042ED3C . E8 AF090000 CALL MP3CDCon.0042F6F0
Bueno ya esta, como mola esta rompedura de bola, bueno ahi donde ponia je, puse jne y bingo acepto mi serial ......., que bueno jajaja , detodas formas una pregunta, el ini ese donde va el serial lo podria cambiar a mi memdia no?,y gracias por el interes, seguire calentandome la cabeza con mas ejemplos antes de intentarlo yo por mi cuenta.......
Citarel ini ese donde va el serial lo podria cambiar a mi memdia no?
¿que quieres cambiar del ini?. por otra parte..... bien ya lo tienes pero..... fijate un poco mas arriba, esto:
0042F522 . 50 PUSH EAX ; /s2
0042F523 . 51 PUSH ECX ; |s1
0042F524 . FFD3 CALL EBX ; \_mbscmp
mira que tiene eax y que tiene ecx.... no comments
Citar0042F522 . 50 PUSH EAX ; /s2
0042F523 . 51 PUSH ECX ; |s1
0042F524 . FFD3 CALL EBX ; \_mbscmp
Potato buscandolo me sale esto
0042F51D . 5E POP ESI
0042F51E . B8 01000000 MOV EAX,1
0042F523 . 5D POP EBP
0042F524 . 64:890D 000000>MOV DWORD PTR FS:[0],ECX
Como es que no me sale lo mismo que a ti?
por cierto que os hacia pensar que estaba ahi, porque esa funcion(mbscmp) trabaja el registro?, estudiare las apis....
no tienes que buscar nada, en las lineas que pusiste cuando invertiste el salto 2 mas arriba le pasa los parametros a la funcion siendo 1 el serial que tu pusiste y el otro imaginatelo.
Citarpor cierto que os hacia pensar que estaba ahi, porque esa funcion(mbscmp) trabaja el registro?,
el registro no tiene nada que ver, vuelve a la explicacion que te da dyablo poeta y abre los ojos.
si puedo ver mi codigo de registro en varios lugares,el que no veo es el name,luego la intuicion te la da los pasos que vas dando, bueno ya se un poco mas, gracias........