elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ... 141
181  Programación / Ingeniería Inversa / Re: Main.exe "Mu online" se congela al atacar con OLLYDBG en: 18 Mayo 2018, 04:37 am
casi siempre usan packers o protectores como themida/winlicense que hacen la vida complicada

Antes de asumir que no tiene nada, lo minimo que debes ver es eso.. que esté sin packer

Saludos Apuromafo
182  Programación / Ingeniería Inversa / Re: Extraer información de una aplicación en: 14 Mayo 2018, 23:58 pm
mi sugerencia es leer sobre UML o hacer pequeños mapas mentales, intentar que la información clasificarla puedes por ejemplo hacer un access con bases de datos para luego pasarlo a trabajar , toda base de dato, es algo necesario a revisar
183  Programación / Ingeniería Inversa / Re: Tutorial acerca del crackme de SkaPunky en: 11 Mayo 2018, 15:23 pm
este es un programa hecho en vb, diriamos que para encontrar el serial dificultad 0 o 1 en ollydbg o x64dbg haciendo uso de la api __vbastrcmp o usando vbastrcmp tool

pero si es para analizar el algoritmo no creo que sea tan facil del todo:

bueno lo acabo de revisar, se ve así

 tiene 3 pequeños algoritmos
el serial válido  se forma de concatenaciones de 4 partes (parte0+parte1+parte2+parte3)
considera cada caracter como ascii
parte 0 =siendo "ska" algo constante
la parte 1, es la suma de cada carácter en ascii (decimal)
la parte 2 , es el primer dígito ingresado x 3 (multiplicado por 3)
la parte 3 , el último carácter (en ascii)  x5 (pero es influenciado por un valor anterior ,  Asc(edx+ecx*4))  como raise excepcion, entonces  si el largo del serial es 8 o mayor será multiplicado por 5,  de lo contrario es 0.  en el caso de 8 carácteres o más se cumple que es caracter ascii x 5 sin problema.

por ejemplo el id  165
largo del serial ingresado = 3

el 1 = en ascii (el numero decimal es 49)
el 6 = en ascii (el nnumero decimal es 54)
el 5 = en ascii (el nnumero decimal es 53)
la suma de los 3 es 156

llevamos
ska156+parte2+parte3
para la siguiente parte  el primer número ingresado es el 1 es multiplicado por 3
asi que :
el 1 = en ascii (el numero decimal es 49) x 3 = 147
llevamos ska156147+parte3
Citar
y la tercera parte
es el ultimo por 5 ,con largo pequeño es 0 queda el valor 00530000 comparado con otro integer que es menor, no pasará al ciclo necesario , asi que  el resultado será 0
llevamos ska1470
algunos seriales son

id:165
Serial: ska1561470

Id:apuromafo
ska859291510

ID:ApuromafoCLS
ska827195510

Saludos Cordiales
Apuromafo CLS

pd: el codigo de la porcion de codigo en vbdecompiler del action click
Citar
Private Sub Command1_Click() '4096F0
  Dim var_15C As TextBox
  loc_00409757: Dim var_40(7) As String
  loc_00409768: Dim var_70(7) As Variant
  loc_004097AE: var_90 = Text1.Text
  loc_004097B6: var_160 = var_90
  loc_0040982D: var_8C = var_90
  loc_00409839: var_eax = %fobj
  loc_0040987F: var_90 = Text2.Text
  loc_00409887: var_160 = var_90
  loc_004098E5: var_7C = var_90
  loc_004098F1: var_eax = %fobj
  loc_00409900: On Error Resume Next
  loc_00409938: var_C0 = Mid(var_8C, 1, 1)
  loc_0040994F: If var_15C >= 8 Then GoTo loc_0040995D
  loc_0040995B: GoTo loc_00409969
  loc_0040995D: 'Referenced from: 0040994F
  loc_0040995D: var_eax = Err.Raise
  loc_00409963: var_1A0 = Err.Raise
  loc_00409969: 'Referenced from: 0040995B
  loc_00409992: ecx = var_C0
  loc_004099EF: var_C0 = Mid(var_8C, 2, 1)
  loc_00409A06: If var_15C >= 8 Then GoTo loc_00409A14
  loc_00409A12: GoTo loc_00409A20
  loc_00409A14: 'Referenced from: 00409A06
  loc_00409A14: var_eax = Err.Raise
  loc_00409A1A: var_1A4 = Err.Raise
  loc_00409A20: 'Referenced from: 00409A12
  loc_00409A49: ecx = var_C0
  loc_00409AA6: var_C0 = Mid(var_8C, 3, 1)
  loc_00409ABD: If var_15C >= 8 Then GoTo loc_00409ACB
  loc_00409AC9: GoTo loc_00409AD7
  loc_00409ACB: 'Referenced from: 00409ABD
  loc_00409ACB: var_eax = Err.Raise
  loc_00409AD1: var_1A8 = Err.Raise
  loc_00409AD7: 'Referenced from: 00409AC9
  loc_00409B00: ecx = var_C0
  loc_00409B5D: var_C0 = Mid(var_8C, 4, 1)
  loc_00409B74: If var_15C >= 8 Then GoTo loc_00409B82
  loc_00409B80: GoTo loc_00409B8E
  loc_00409B82: 'Referenced from: 00409B74
  loc_00409B82: var_eax = Err.Raise
  loc_00409B88: var_1AC = Err.Raise
  loc_00409B8E: 'Referenced from: 00409B80
  loc_00409BB7: ecx = var_C0
  loc_00409C14: var_C0 = Mid(var_8C, 5, 1)
  loc_00409C2B: If var_15C >= 8 Then GoTo loc_00409C39
  loc_00409C37: GoTo loc_00409C45
  loc_00409C39: 'Referenced from: 00409C2B
  loc_00409C39: var_eax = Err.Raise
  loc_00409C3F: var_1B0 = Err.Raise
  loc_00409C45: 'Referenced from: 00409C37
  loc_00409C6E: ecx = var_C0
  loc_00409CCB: var_C0 = Mid(var_8C, 6, 1)
  loc_00409CE2: If var_15C >= 8 Then GoTo loc_00409CF0
  loc_00409CEE: GoTo loc_00409CFC
  loc_00409CF0: 'Referenced from: 00409CE2
  loc_00409CF0: var_eax = Err.Raise
  loc_00409CF6: var_1B4 = Err.Raise
  loc_00409CFC: 'Referenced from: 00409CEE
  loc_00409D25: ecx = var_C0
  loc_00409D82: var_C0 = Mid(var_8C, 7, 1)
  loc_00409D99: If var_15C >= 8 Then GoTo loc_00409DA7
  loc_00409DA5: GoTo loc_00409DB3
  loc_00409DA7: 'Referenced from: 00409D99
  loc_00409DA7: var_eax = Err.Raise
  loc_00409DAD: var_1B8 = Err.Raise
  loc_00409DB3: 'Referenced from: 00409DA5
  loc_00409DDC: ecx = var_C0
  loc_00409E39: var_C0 = Mid(var_8C, 8, 1)
  loc_00409E50: If var_15C >= 8 Then GoTo loc_00409E5E
  loc_00409E5C: GoTo loc_00409E6A
  loc_00409E5E: 'Referenced from: 00409E50
  loc_00409E5E: var_eax = Err.Raise
  loc_00409E64: var_1BC = Err.Raise
  loc_00409E6A: 'Referenced from: 00409E5C
  loc_00409E93: ecx = var_C0
  loc_00409ED6: If var_160 >= 8 Then GoTo loc_00409EE4
  loc_00409EE2: GoTo loc_00409EF0
  loc_00409EE4: 'Referenced from: 00409ED6
  loc_00409EE4: var_eax = Err.Raise
  loc_00409EEA: var_1C0 = Err.Raise
  loc_00409EF0: 'Referenced from: 00409EE2
  loc_00409F03: var_118 = Asc(ecx+eax*4)
  loc_00409F25: If var_15C >= 8 Then GoTo loc_00409F33
  loc_00409F31: GoTo loc_00409F3F
  loc_00409F33: 'Referenced from: 00409F25
  loc_00409F33: var_eax = Err.Raise
  loc_00409F39: var_1C4 = Err.Raise
  loc_00409F3F: 'Referenced from: 00409F31
  loc_00409F51: var_64 = var_64 + var_15C
  loc_00409F53: var_64 = Asc(ecx+eax*4)
  loc_00409F71: If var_160 >= 8 Then GoTo loc_00409F7F
  loc_00409F7D: GoTo loc_00409F8B
  loc_00409F7F: 'Referenced from: 00409F71
  loc_00409F7F: var_eax = Err.Raise
  loc_00409F85: var_1C8 = Err.Raise
  loc_00409F8B: 'Referenced from: 00409F7D
  loc_00409F9E: var_118 = Asc(edx+ecx*4)
  loc_00409FC0: If var_15C >= 8 Then GoTo loc_00409FCE
  loc_00409FCC: GoTo loc_00409FDA
  loc_00409FCE: 'Referenced from: 00409FC0
  loc_00409FCE: var_eax = Err.Raise
  loc_00409FD4: var_1CC = Err.Raise
  loc_00409FDA: 'Referenced from: 00409FCC
  loc_00409FEC: var_15C = var_15C + var_64
  loc_00409FEE: var_15C = Asc(edx+ecx*4)
  loc_0040A00C: If var_160 >= 8 Then GoTo loc_0040A01A
  loc_0040A018: GoTo loc_0040A026
  loc_0040A01A: 'Referenced from: 0040A00C
  loc_0040A01A: var_eax = Err.Raise
  loc_0040A020: var_1D0 = Err.Raise
  loc_0040A026: 'Referenced from: 0040A018
  loc_0040A039: var_118 = Asc(edx+ecx*4)
  loc_0040A05B: If var_15C >= 8 Then GoTo loc_0040A069
  loc_0040A067: GoTo loc_0040A075
  loc_0040A069: 'Referenced from: 0040A05B
  loc_0040A069: var_eax = Err.Raise
  loc_0040A06F: var_1D4 = Err.Raise
  loc_0040A075: 'Referenced from: 0040A067
  loc_0040A087: var_15C = var_15C + var_64
  loc_0040A089: var_15C = Asc(edx+ecx*4)
  loc_0040A0A7: If var_160 >= 8 Then GoTo loc_0040A0B5
  loc_0040A0B3: GoTo loc_0040A0C1
  loc_0040A0B5: 'Referenced from: 0040A0A7
  loc_0040A0B5: var_eax = Err.Raise
  loc_0040A0BB: var_1D8 = Err.Raise
  loc_0040A0C1: 'Referenced from: 0040A0B3
  loc_0040A0D4: var_118 = Asc(edx+ecx*4)
  loc_0040A0F6: If var_15C >= 8 Then GoTo loc_0040A104
  loc_0040A102: GoTo loc_0040A110
  loc_0040A104: 'Referenced from: 0040A0F6
  loc_0040A104: var_eax = Err.Raise
  loc_0040A10A: var_1DC = Err.Raise
  loc_0040A110: 'Referenced from: 0040A102
  loc_0040A122: var_15C = var_15C + var_64
  loc_0040A124: var_15C = Asc(edx+ecx*4)
  loc_0040A142: If var_160 >= 8 Then GoTo loc_0040A150
  loc_0040A14E: GoTo loc_0040A15C
  loc_0040A150: 'Referenced from: 0040A142
  loc_0040A150: var_eax = Err.Raise
  loc_0040A156: var_1E0 = Err.Raise
  loc_0040A15C: 'Referenced from: 0040A14E
  loc_0040A16F: var_118 = Asc(edx+ecx*4)
  loc_0040A191: If var_15C >= 8 Then GoTo loc_0040A19F
  loc_0040A19D: GoTo loc_0040A1AB
  loc_0040A19F: 'Referenced from: 0040A191
  loc_0040A19F: var_eax = Err.Raise
  loc_0040A1A5: var_1E4 = Err.Raise
  loc_0040A1AB: 'Referenced from: 0040A19D
  loc_0040A1BD: var_15C = var_15C + var_64
  loc_0040A1BF: var_15C = Asc(edx+ecx*4)
  loc_0040A1DD: If var_160 >= 8 Then GoTo loc_0040A1EB
  loc_0040A1E9: GoTo loc_0040A1F7
  loc_0040A1EB: 'Referenced from: 0040A1DD
  loc_0040A1EB: var_eax = Err.Raise
  loc_0040A1F1: var_1E8 = Err.Raise
  loc_0040A1F7: 'Referenced from: 0040A1E9
  loc_0040A20A: var_118 = Asc(edx+ecx*4)
  loc_0040A22C: If var_15C >= 8 Then GoTo loc_0040A23A
  loc_0040A238: GoTo loc_0040A246
  loc_0040A23A: 'Referenced from: 0040A22C
  loc_0040A23A: var_eax = Err.Raise
  loc_0040A240: var_1EC = Err.Raise
  loc_0040A246: 'Referenced from: 0040A238
  loc_0040A258: var_15C = var_15C + var_64
  loc_0040A25A: var_15C = Asc(edx+ecx*4)
  loc_0040A278: If var_160 >= 8 Then GoTo loc_0040A286
  loc_0040A284: GoTo loc_0040A292
  loc_0040A286: 'Referenced from: 0040A278
  loc_0040A286: var_eax = Err.Raise
  loc_0040A28C: var_1F0 = Err.Raise
  loc_0040A292: 'Referenced from: 0040A284
  loc_0040A2A5: var_118 = Asc(edx+ecx*4)
  loc_0040A2C7: If var_15C >= 8 Then GoTo loc_0040A2D5
  loc_0040A2D3: GoTo loc_0040A2E1
  loc_0040A2D5: 'Referenced from: 0040A2C7
  loc_0040A2D5: var_eax = Err.Raise
  loc_0040A2DB: var_1F4 = Err.Raise
  loc_0040A2E1: 'Referenced from: 0040A2D3
  loc_0040A2F3: var_15C = var_15C + var_64
  loc_0040A2F5: var_15C = Asc(edx+ecx*4)
  loc_0040A313: If var_160 >= 8 Then GoTo loc_0040A321
  loc_0040A31F: GoTo loc_0040A32D
  loc_0040A321: 'Referenced from: 0040A313
  loc_0040A321: var_eax = Err.Raise
  loc_0040A327: var_1F8 = Err.Raise
  loc_0040A32D: 'Referenced from: 0040A31F
  loc_0040A340: var_118 = Asc(edx+ecx*4)
  loc_0040A362: If var_15C >= 8 Then GoTo loc_0040A370
  loc_0040A36E: GoTo loc_0040A37C
  loc_0040A370: 'Referenced from: 0040A362
  loc_0040A370: var_eax = Err.Raise
  loc_0040A376: var_1FC = Err.Raise
  loc_0040A37C: 'Referenced from: 0040A36E
  loc_0040A38E: var_15C = var_15C + var_64
  loc_0040A390: var_15C = Asc(edx+ecx*4)
  loc_0040A3AE: If var_15C >= 8 Then GoTo loc_0040A3BC
  loc_0040A3BA: GoTo loc_0040A3C8
  loc_0040A3BC: 'Referenced from: 0040A3AE
  loc_0040A3BC: var_eax = Err.Raise
  loc_0040A3C2: var_200 = Err.Raise
  loc_0040A3C8: 'Referenced from: 0040A3BA
  loc_0040A3D9: If var_160 >= 8 Then GoTo loc_0040A3E7
  loc_0040A3E5: GoTo loc_0040A3F3
  loc_0040A3E7: 'Referenced from: 0040A3D9
  loc_0040A3E7: var_eax = Err.Raise
  loc_0040A3ED: var_204 = Err.Raise
  loc_0040A3F3: 'Referenced from: 0040A3E5
  loc_0040A404: If var_164 >= 8 Then GoTo loc_0040A412
  loc_0040A410: GoTo loc_0040A41E
  loc_0040A412: 'Referenced from: 0040A404
  loc_0040A412: var_eax = Err.Raise
  loc_0040A418: var_208 = Err.Raise
  loc_0040A41E: 'Referenced from: 0040A410
  loc_0040A42F: If var_168 >= 8 Then GoTo loc_0040A43D
  loc_0040A43B: GoTo loc_0040A449
  loc_0040A43D: 'Referenced from: 0040A42F
  loc_0040A43D: var_eax = Err.Raise
  loc_0040A443: var_20C = Err.Raise
  loc_0040A449: 'Referenced from: 0040A43B
  loc_0040A45A: If var_16C >= 8 Then GoTo loc_0040A468
  loc_0040A466: GoTo loc_0040A474
  loc_0040A468: 'Referenced from: 0040A45A
  loc_0040A468: var_eax = Err.Raise
  loc_0040A46E: var_210 = Err.Raise
  loc_0040A474: 'Referenced from: 0040A466
  loc_0040A485: If var_170 >= 8 Then GoTo loc_0040A493
  loc_0040A491: GoTo loc_0040A49F
  loc_0040A493: 'Referenced from: 0040A485
  loc_0040A493: var_eax = Err.Raise
  loc_0040A499: var_214 = Err.Raise
  loc_0040A49F: 'Referenced from: 0040A491
  loc_0040A4B0: If var_174 >= 8 Then GoTo loc_0040A4BE
  loc_0040A4BC: GoTo loc_0040A4CA
  loc_0040A4BE: 'Referenced from: 0040A4B0
  loc_0040A4BE: var_eax = Err.Raise
  loc_0040A4C4: var_218 = Err.Raise
  loc_0040A4CA: 'Referenced from: 0040A4BC
  loc_0040A4DB: If var_178 >= 8 Then GoTo loc_0040A4E9
  loc_0040A4E7: GoTo loc_0040A4F5
  loc_0040A4E9: 'Referenced from: 0040A4DB
  loc_0040A4E9: var_eax = Err.Raise
  loc_0040A4EF: var_21C = Err.Raise
  loc_0040A4F5: 'Referenced from: 0040A4E7
  loc_0040A501: var_64 = var_64 + var_15C
  loc_0040A510: var_64 = var_64 + var_160
  loc_0040A52D: var_64 = var_64 + var_164
  loc_0040A54A: var_64 = var_64 + var_168
  loc_0040A567: var_64 = var_64 + var_16C
  loc_0040A584: var_64 = var_64 + var_170
  loc_0040A5A1: var_64 = var_64 + var_174
  loc_0040A5BE: var_64 = var_64 + var_178
  loc_0040A5DA: var_24 = var_64 + var_64 + var_64 + var_64 + var_64 + var_64 + var_64 + var_64
  loc_0040A634: If var_15C >= 8 Then GoTo loc_0040A642
  loc_0040A640: GoTo loc_0040A64E
  loc_0040A642: 'Referenced from: 0040A634
  loc_0040A642: var_eax = Err.Raise
  loc_0040A648: var_220 = Err.Raise
  loc_0040A64E: 'Referenced from: 0040A640
  loc_0040A66E: var_64 = var_64 + var_15C
  loc_0040A68A: var_58 = var_64 * 3
  loc_0040A6A8: If var_15C >= 8 Then GoTo loc_0040A6B6
  loc_0040A6B4: GoTo loc_0040A6C2
  loc_0040A6B6: 'Referenced from: 0040A6A8
  loc_0040A6B6: var_eax = Err.Raise
  loc_0040A6BC: var_224 = Err.Raise
  loc_0040A6C2: 'Referenced from: 0040A6B4
  loc_0040A6F3: var_ret_2 = var_64 + var_15C * 5
  loc_0040A77C: var_28 = "ska" & var_24 & CStr(var_58) & CStr(CInt(-1))
  loc_0040A7C0: If (var_28 <> var_7C) <> 0 Then GoTo loc_0040A8A3
  loc_0040A815: var_C0 = "CrackMe"
  loc_0040A83B: var_B0 = "Good, this version is registrered !"
  loc_0040A85F: MsgBox(var_B0, 1, var_C0, var_D0, var_E0)
  loc_0040A871: var_48 = CStr(MsgBox(var_B0, 1, var_C0, var_D0, var_E0))
  loc_0040A89E: GoTo loc_0040A97B
  loc_0040A8A3: 'Referenced from: 0040A7C0
  loc_0040A8F2: var_C0 = "CrackMe"
  loc_0040A918: var_B0 = "Sorry, password Incorrect"
  loc_0040A93C: MsgBox(var_B0, 1, var_C0, var_D0, var_E0)
  loc_0040A94E: var_48 = CStr(MsgBox(var_B0, 1, var_C0, var_D0, var_E0))
  loc_0040A97B: 'Referenced from: 0040A89E
  loc_0040A987: GoTo loc_0040A9F9
  loc_0040A9B6: var_eax = %fobj
  loc_0040A9F8: Exit Sub
  loc_0040A9F9: 'Referenced from: 0040A987
  loc_0040AA0E: var_154 = var_40
  loc_0040AA38: var_158 = var_70
End Sub
184  Programación / Ingeniería Inversa / Re: Crackear programa con protección de datos en: 9 Mayo 2018, 17:22 pm
Buenas noches al Foro.

Tengo dudas respecto a un programa que carga el encriptador softkey2 y al tratar de desproteger DEP en windows no lo permite, me sale el mensaje: "este programa solo puede ejecutarse con DEP habilitado".
El programa carga como demo y se habilita con un archivo ?????file.cert que solo se envia al usuario autenticado con la compra del software

Lo he tratado de desensamblar con windasm32 y con Ollydbg y con IDA64, pero solo desensambla sus dlls relacionadas como user ntdll y kernel.

Al iniciar la depuración solo llega hasta el modulo Kernel y salta con una excepcion en un loop infinito para finalizar cerrando el debugger( win32dasm, ollydbg) con un mensaje del sistema operativo indicando que el programa se terminara...

alguna sugerencia respecto a como puedo desensamblarlo?????




con esos mismos programas y x64dbg, pero primero aprende a usarlos :)

Saludos Apuromafo

pd: los programas no necesariamente son siempre nativos, algunas veces son .net y se deben usar otros tipos de programas..  se usan herramientas como detect is easy, protection id y rdgpacker detector, antes de tomar conclusiones de ser un packer/protector


185  Programación / Ingeniería Inversa / Re: saber que programa de esteganografia ha modificado un archivo en: 9 Mayo 2018, 17:20 pm
en general cuando usas alguna herramienta como steghide, te das cuenta que hay muchas opciones, de seguro que si vas a cualquier ctf (atenea o el que sea) que tenga stenografía, de seguro encuentras que lo hacen modificando cabezeras, agregando informacion despues del archivo entre otros. aveces va con el tema de las capas , la capa principal es la informacion que vemos, las otras capas (ya sea un thubnail o el que sea, se encarga de colocar la información oculta)

hay muchisimas herramientas de estenografía, y muchos editores hexadecimales, saber quien lo ha hecho es imposible a primera vista.

Saludos Apuromafo
pd: evernote es como un editor de texto, es copiar/pegar contenidos, aveces colocar una palabra con color transparente al texto que se ve...
186  Programación / Ingeniería Inversa / Re: Cómo guardar cambios en programa modificado con x64dbg en: 9 Mayo 2018, 17:16 pm
en temas destacados está el curso de ratón, yo lo he realizado en x64dbg, de seguro aprenderás a usar las cosas básicas

https://foro.elhacker.net/ingenieria_inversa/videohaciendo_el_curso_de_raton_ollydbg_en_x64dbg_windows_81_x64_by_apuromafo-t481757.0.html

Saludos Apuromafo
187  Programación / Ingeniería Inversa / Re: conseguir la forma en la que se construye una cadena de texto en: 7 Mayo 2018, 17:18 pm
Me gustaría saber como conseguir el algoritmo que hace que una cadena de texto sea construida en un número de 10 dígitos con signo.
ejemplo..
El campo de entrada es : "150" y la salida es "1577100463"
El campo de entrada es: "150.000" y la salida es "-67672894"

 Los digitos por varias pruebas que he realizado son digitos de 9 o 10 digitos con signo.

La salida es única dependiendo de la.entrada.

Un saludo y gracias.

de seguro debe ser un algoritmo bien curioso, pero sin codigo de fuente, solo te toca leer los manuales de ingenieria inversa  por si te resulta algo

en particular, yo mirando un serial generado de algo escrito, no necesariamente llegaré a un resultado puntual, detrás de una ecuación pueden haber muchas posibilidades

yo que tu probaría intentando graficar todos los datos posibles en un rango de datos, si hay coherencia entonces bien, pero si no, hay fórmulas que basta 1 valor y un random entre ciertos rangos , y queda la escoba


Saludos Apuromafo
188  Programación / Ingeniería Inversa / Re: Herramienta para buscar y comparar valores en ficheros de datos binarios. en: 7 Mayo 2018, 17:15 pm
hacking de telefonos y temas de comparar valores, siempre son de pagos para las compañias que las hacen, no creo que esté asociada a la ingenieria inversa, sino mas bien usar herramientas específicas para cada teléfono en sí...

por otro lado hagamos algo similar para entender

digamos que tienes 2 archivos iguales, idénticos, pero que tienen diferente fecha, confirmaras en un exe/otros  que la diferencia son algunos punteros, hasta ahi no hay drama puede que sea 1 cambio o 10,

digamos que tienes 2 archivos iguales en 2 sistemas operativos iguales y has compreso todo en una raw,  3 millones de  cambios

digamos que tienes 2 archivos iguales compresos con 2 algoritmos distintos (.zip .rar) y estos compresos en 7z y eso quieres comparar (los archivos 7z)
de seguro estarás intentando comparar porque el archivo es el mismo... pero en su interior contienen diferente informacion y compresion, de seguro los punteros a direcciones son diferentes,datos información  ... de seguro seria dieferente si usas un visor de 7zip

 
pregunta, si es el mismo archivo, como diferenciarás esas diferencias de los bloques? entendiendo el compresor no creo, comprendiendo el algoritmo tampoco,deberás comprender el hardware que en teoria refieres NFC que es para crear compatibilidad en dispositivos, osea nanotecnología,  es el resultado de como funciona con esos cambios:.. osea deberias tener un visor específico para ello y no un simple editor hexadecimal

para tu caso puntual, el visor de raw  sobre un dato hexadecimal, debería estar documentado cuando  está estudiado, en los exes, hay cabezeras PE/MZ  

cuando se quiere analizar un sistema operativo se suele utilizar técnicas de forense, y puedes usar volatily entre otros, pero se conoce el sistema que usas (fat/ntfs etc)

Para mi los cambios pueden ser diferentes punteros o direcciones a diferentes informaciones en tu programa

para otros esos cambios pueden ser cambios de fecha o inclusive cambio en alguna firma/clave pgp etc

las posibilidades son infinitas, no creo que analizando dumps alineados logres algo si no trabajas en el mismo idioma que tenga el formato de tu telefono,de seguro trabajan con lenguaje arm  o pics o quien sabe


Saludos Apuromafo

pd: yo creo que no llegaras muy lejos analizando 2 hexadecimales sin saber como funcionan de por si.


imaginate el caso que como buen usuario tengo el codigo de fuente de un programa, compilo el mismo programa pero distinta imagen, tendré punteros distintos, version distinta, pero funcionalidad es la misma, osea insisto, en temas hexadecimales habrán muchisimos cambios que si no se estudia los recursos de la misma, no veré nunca mas que cientos o miles de datos cambiados..

189  Programación / Ingeniería Inversa / Re: Cómo desempaquetar PC Guard 5.0 que requiere el código de activación en: 25 Abril 2018, 02:54 am
shaddy  (moderador del foro) programó un keygen bruteforce a partir del algoritmo, deberia lograr encontrar el valor correcto para descomprimir, pero requiere mucha práctica, yo no he guardado aquel keygen ni mucho menos, pero algo recuerdo, todo es dependiente HIW+serial +opciones para desbloquear el programa, no es que se falsee con una informacion de otro para inyectarlo

Saludos Apuromafo

pd: el unico camino que se conoce es bruteforce ... y de paso desempacar.

1 licencia valida en el pc valido, en la fecha valida con todo valido... = 1 programa que podría ser desempacado

bypass siempre puede decir gracias por registrar o habilitar botón, pero no descomprimirá correctamente.
190  Programación / Ingeniería Inversa / Re: Desempaquetar .dat en: 25 Abril 2018, 02:51 am
muchas veces el resultado es desafiante, realmente no es entender el dat ni su cabezera, es quien trabaja con el .dat y en que formato real casi siempre son ejecutables, el cual se ha colocado con chinchetas como aprender a usar depurador y todo eso, pero bueno,

para que puedas comenzar a buscar bien en google te sugiero busques el "magic header"
aqui  una sugerencia es leer las signatures del header ejemplo
https://en.wikipedia.org/wiki/List_of_file_signatures
https://www.garykessler.net/library/file_sigs.html

pero aunque las tuvieras, deberás saber como funciona, saber que tenga un archivo aplib no significa nada para quien lo ha investigado, minimo hay que conocer el programa que trabaje con ellas, en algnos un .dat puede ser como un archivo compreso, con informacion, y en otros como un .log o texto donde guarda la informacion que va procesando, todo es muy relativo a lo que se use


Saludos Apuromafo
pd:casi siempre terminan mal estos post asi... (no aprenden ingenieria inversa, sino mas bien aprenden como usar google)
Páginas: 1 ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ... 141
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines