Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - bizco

#541
Ingeniería Inversa / Re: Como hacer que..
28 Abril 2009, 20:07 PM
Citar
0042FA0A     /75 10                 jnz short magebotv.0042FA1C
0042FA0C     |FF7424 08             push dword ptr ss:[esp+8]
0042FA10     |893D F4137400         mov ds:[7413F4],edi
0042FA16     |FF15 38457400         call ds:[<&KERNEL32.ExitProcess>]              ;  kernel32.ExitProcess
0042FA1C  |> \5F                    pop edi
0042FA1D  \.  C3                    retn

fijate en el jnz, a mi no se me cierra. me sale un error que no afecta aparentemente al programa y ahi se queda marchando.

Ya me conecta con el server:

Citar
CreateFile: bkey.bin Flags: OPEN_EXISTING
(Winsock) connect 216.69.131.18
(Winsock) send - Buffer: GET /authorize.php?id=-1431655766&v=55 HTTP/1.1
Host: tibiadb.com
Accept: */*

(Winsock) recv - Buffer: HTTP/1.1 200 OK
Date: Tue, 28 Apr 2009 18:37:18 GMT
Server: Apache
Transfer-Encoding: chunked
Content-Type: text/html
14
0003locked
Magebot

CreateFile: bkey.bin Flags: CREATE_ALWAYS
CreateFile: SETTINGS.txt Flags: OPEN_EXISTING

El programa a terminado.

yo creo asi a ojo que eso de locked si buscas por las strings tiene que tener otra que le diga que esta todo OK. es decir sabiendo esto simplemente seria hookear recv y modificar el buffer. todo esto son cosas que opino, no tiene pq ser cierto, investiga tu mismo.
#542
no te hacen falta cientos de seriales, el algoritmo lo tienes en el programa. depurar y depurar hasta el algoritmo destripar :).
#543
te vas a la carpeta donde tengas instalado el cs, si por ejemplo lo tienes en "c:\cs" te vas a c:\cs\platform\config ahi abres el masterservers.vdf borras el contenido y pones esto:


"MasterServers"
{
"hl1"
{
"0"
{
"addr" "72.165.61.189:27010"
}
"1"
{
"addr" "68.142.72.250:27010"
}
"2"
{
"addr" "69.28.151.162:27010"
}
}
"hl2"
{
"0"
{
"addr" "69.28.140.246:27011"
}
"1"
{
"addr" "68.142.72.250:27011"
}
"2"
{
"addr" "72.165.61.189:27011"
}
}
"rdkf"
{
"0"
{
"addr" "67.132.200.140:27012"
}
}
}

#544
Bueno añado algo mas de informacion, pongo 2 paquetes de los miles que he capturado ya. de estos paquetes he sacado en claro que llevan un numero de secuencia, es decir 0, 1, 2,3 numerando los envios.

Paquete 2: (index 1)


010000C0010000805A1801000100104164194001332F782211307A63782629733627756D2463207211023275


paquete 3: (index 2)


02000000020000805919010319011143


los envios logicamente son variables de tamaño.

como ya digo a simple vista lo que puedo deducir del protocolo es que numera los paquetes.

otro paquete en formato "legible" seria este:


  Àb   R  ISR@
A{!i!@fPh ¢Ñ6S æ÷ïöüçï¶ì翶ö¼¯ÿ¶¦ÿ¯¶ö§¯ö¬§ïöF8àö¯÷)˜´ôíäÞ:jWþ·+Ô³YàŠnŽñžÞ¢L¾²Õ{ñôü­Yøˆ+@P q‹ÀˆªàíÅ=Æ\±új?–M$ ÓtQZZ
DÈ"ÓE€¨»40...ÜZ•–ÏêTµ·d;¹y4ÚÁÉô @C¯oj]¯ŠL¯:žrS(áä®=O%¡¬YïñÁÌ?(@—I]L'/Ë_l^ËDv¶2ó 'öžû£Aå F±ùDÄZRŒ§ ,åéó¹'¯$´î|bÓ- 
3txÍ|4m¹P4
¼Z"IBîV`]e= ÆzôîNûl£¹1ú Àâ¡5
¤7+¼¹G©
ÛjS}´t°Ý:=
œ¯ °ì$ã£âÁIt¼,HP wi#ð˜ªÙAgº@ðÂ"=º¥ü¶^ãˆç9Szʾ<ª`òç€Êœzã݃ÀLê8F°>aR˜IbóžOÉèï XPaePó™Fd ˜O 6@ €}I-C€
[@ I Ù P
ISI@T€ X@êK4 4m@j€ŒŽ= —òáÔSo©|ÒD&é'¼¼$ÁZmr8
ºÁÝýy2㇐¶—£ï'PODR]Ù+P€ï‡{ðHhÉæ?Ãû¬u—»:ÔÉDNí]°­Íœe¬¢àÈ5¦)¬yχjåýûZÁ¦:tæ,,•q†Ù>ÁI0Ã]QÆÍ@t9q& >¥ùüù˯¶ç¼ä¯–žFCT) $0(çPAà:ÞÜD\
gi¨rs¦âs,ÜÌIÒ»©¥4 Îs`䟆%A,cøµhÌ...š\/ofšÝ‡µ™$á?ª Ÿ¶n;Œ,õQ§io} Œ˜>%å,—¥ÝÄZ{îÏ.R °Oa·G\x²lŠ5Ðó¶4§|½¥ù
p_5Q8‹úœ¼YTOáòA­}¨ÇFcO{²4ÿƒÏDÿómAáJΠ–Ò‡¤žÚìà›_ïàÍ™ƒØ:"ÍRÅÒiYFD©]Œ¥‹4®µ"#
%;Í6F-̱
²?S³ ¼9.à;àÇ%€ßøéÅÁ tÉ ædtLjÁùù...>%'ãv:õøq^¾Ë!ó/ê»âåIæ´QQû¥13LÒ'E¾‹ I[[®c¥Axk67
¼=Ò §Še¹õòú¶bB2$´Z(´€ù²«;ÄAB UeU±2>ÌÓ{ßl^C dK~-Kе¶


como dije en el anterior post el protocolo va cifrado, o mejor dicho es una compresion al vuelo de los datos, posiblemente sea bzip2.

¿alguno conoce una aplicacion que permita descomprimir bzip2 pero de un buffer?.

si alguno ve algo coincidente en los paquetes o algo que yo no vea o reconoce un posible algoritmo o ves tu a saber me podria dejar alguna pista en este post.


por otra parte ahora vengo modificando las cosas para buscar un patron de algo. pues bien este valor:


0E 00 00 00 0C 00 00 00 55 19 01 0F 15 01 19 4F


esto descomprimido/descifrado es exactamente esto "senTres", siendo la T el valor 0x19 de la cadena anterior, esto lo se seguro porque yo añado ese caracter. si fuese una cadena con la misma longitud y caracteres raros se podria aplicar algo de fuerza bruta y sabiendo las letras q tienen q salir seria cuestion de tiempo sacarlo, pero siendo una compresion ¿que medidas me diriais que tome?
#545
Hola, necesito mas que una ayuda una idea pq ahora mismo estoy atascado. tengo un soft que manda datos a un servidor, tengo acceso tb al soft servidor y en los 2 he depurado ya y sacado en claro algunas cosas. el servidor le manda un dato al cliente y el cliente toda peticion que hace a este servidor lo hace ya identificando cada peticion con este dato, es decir si yo mando una peticion sin ese dato, el servidor me cierra la conexion.

hasta aqui todo sencillo, lo que se me complica un poco es que ese dato viaja cifrado tanto desde el cliente al servidor como del servidor al cliente. ventajas de poder depurar el servidor es que se que datos se le envian y se que datos se reciben, pero esto ya una vez procesados. yo estoy hookeando los sockets y necesito reconocer ese paquete para sacar ese dato antes de que lo reciba el cliente. la cosa es que esta cifrado con algun algoritmo conocido pero claro....... hay tantos. ¿sabeis alguna aplicacion o la forma de reconocer este cifrado? es el ultimo paso y tendria la comunicacion completamente destripada.

PD: no es que solo se envie un paquete, se envian varios y segun cuales son descartados asi que no se realmente cual paquete estoy viendo, si es mio (genero paquetes externamente) o es de la propia aplicacion, por eso me interesa reconocerlo.

un saludo.
#547
Para lo que quieres no te vale, ya que se le aplica md5 al fichero. que no cambie de tamaño es lo de menos, 1 byte cambiado y el md5 es diferente.
#549
pero tampoco es tan dificil pasarlo.


v1    db 2,5,7,9,0Ah,0Ah,9,8,7,5
v2    db 10 dup(0)
x     db 0
suma1 db 0
suma2 db 0   

mov ecx,0Ah
bucle:
aqui pones lo demas que no tiene mayor complicacion. si no, hay que leer mas.
loop bucle
#550
eso de que las constantes no tienen logica seria discutible. su valor tiene su logica porque es el unico que reconoce la/s funcion/es. el nombre tiene mucha logica:

WS_CHILD =                WS_* WINDOW STYLE
WM_LBUTTONDOWN =  WM_* WINDOW MESSAGE
SW_HIDE =                  SW_* SHOW WINDOW