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

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 ... 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 [455] 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 ... 620
4541  Programación / Ingeniería Inversa / Re: ¿hay algun Tip para esta firma? en: 2 Abril 2013, 02:32 am
Creo que necesitas explicarte mejor.
4542  Programación / Ingeniería Inversa / Re: Ayuda con el Sistema de Saint de condominio en: 2 Abril 2013, 02:29 am
Hola!

Puedes empezar por aquí: http://foro.elhacker.net/ingenieria_inversa/faq_iquesteres_nuevo-t345798.0.html

Saludos!
4543  Programación / Ingeniería Inversa / Re: Ayuda con ollydbg en: 30 Marzo 2013, 23:18 pm
No le debes estar pegando al salto correcto. Quizás el proggie está pensado para no ser parcheado de esa forma. Quizás sólo estés evitando el mensaje de error.

Tal vez convenga reversear la función que comprueba el serial.

En definitiva: Me parece que debes analizar más el programa...

Saludos!
4544  Programación / Ingeniería Inversa / Re: ¿como evito que sea vivible el serial de un Crackme? en: 30 Marzo 2013, 23:16 pm
si se compila en P-Code,practicamente indescifrable.

Si te refieres a VB6, PCODE es MUCHO mas sencillo que native code (A mi juicio).

En Nativo puedes 1 millón de cosas más asquerosas que en PCODE: Desde tocar el código hasta llamar a ASM usando Callbacks.

Saludos!
4545  Programación / ASM / Re: Ayuda con funcion "Split" en: 30 Marzo 2013, 23:09 pm
Ahora, si quieres hacer un split como el de VB (delimitador de más de un carácter), la cosa se complica. Lo difícil en ese caso es el algoritmo a usar, y hay que pensarlo bien para que sea óptimo.

Siempre puedes tracear el runtime de VB y ver qué hace... :)

Por supuesto, hay que tener en cuenta que VB usa UNICODE internamente.
4546  Programación / ASM / Re: Ayuda con funcion "Split" en: 28 Marzo 2013, 05:21 am
Veo que no tienes en cuenta algunas cosas. Examinemos el problema:

Quieres hacer en MASM lo mismo que en VB6: usar la función split.

La función split toma un string de largo arbitrario (por sencillez diremos que es un string terminado en zero) y otro string, el cual NORMALMENTE es de largo 1 (por sencillez lo tomaremos como de largo 1).

Lo que hace la función es partir el primer string en la posición de cada ocurrencia del segundo string. Cabe destacar que el string de separación (el segundo string) no se incluye en el resultado.

Luego, las strings obtenidas se colocan en un array (matriz en vb) de strings.

Faltan analizar los casos especiales, como por ej.: si no se encuentra el 2º string, pero por ahora basta con lo dicho.

Ahora, para lo anterior, debes tener en cuenta lo siguiente:

El array de cadenas: lo devuelves como puntero? Osea, la función se encarga de allocar la memoria, llenarla (partir la cadena) y devolver un ptr al array en eax? O mejor lo pides como parámetro? Si viene como parámetro: cuál debería ser el tamaño? Un array de strings en realidad sería un array de punteros, donde deberás especificar el tamaño, con lo que ya tendrías una estructura.

Como ves, no es tan sencillo como suena, pero tampoco imposible. Te aconsejo mirar la carpeta HELP del MASM. En especial el archivo masmlib. Verás que la lib de MASM tiene muchas cosas que puedes usar y que te permitirán implementar esta función de una forma sencilla. Ejemplos que te podrían servir en este caso:

create_array  Create an array of pointers to a user defined array
InString Find substring in zero terminated source string
szWcnt  Count the occurrence of text in a zero terminated string

y la lista sigue y sigue... :)

Saludos!
4547  Programación / ASM / Re: Ayuda con funcion "Split" en: 27 Marzo 2013, 23:12 pm
Si tienes un buffer (Cadena), puedes usar la palabra offset para hacer referencia a la posicion donde esta.

Código:
mov eax, offset Cadena

Hace que eax apunte al primer byte de la cadena.

Ahora

Código:
mov eax, dword ptr [Cadena]

Hace que eax contenga "el dword que esta apuntado por" Cadena, osea los 4 primeros bytes de la misma.

Para recorrer el stringz char x char hay muchos metodos. Lo que hice YO al principio, fue hacer un programa que usaba las macros de masm (fijate el folder doc de la instalacion de masm), use StrCopy (no recuerdo bien cual fue con certeza), compile y miré el asm con Olly.
4548  Programación / Programación Visual Basic / Re: Cuenta regresiva en: 27 Marzo 2013, 21:11 pm
Te dejo el codigo de un "reloj de ajedrez" que hice hace un tiempo. Tiene la cuenta regresiva que pides y agunas cosillas mas (es el form completo).

Código
  1. VERSION 5.00
  2. Begin VB.Form Form1
  3.   Caption         =   "Form1"
  4.   ClientHeight    =   9495
  5.   ClientLeft      =   165
  6.   ClientTop       =   450
  7.   ClientWidth     =   12345
  8.   LinkTopic       =   "Form1"
  9.   ScaleHeight     =   9495
  10.   ScaleWidth      =   12345
  11.   StartUpPosition =   2  'CenterScreen
  12.   Begin VB.Timer Timer1
  13.      Enabled         =   0   'False
  14.      Interval        =   1000
  15.      Left            =   960
  16.      Top             =   3480
  17.   End
  18.   Begin VB.Label lblPause
  19.      Alignment       =   2  'Center
  20.      AutoSize        =   -1  'True
  21.      BackStyle       =   0  'Transparent
  22.      Caption         =   "PAUSADO"
  23.      BeginProperty Font
  24.         Name            =   "Arial"
  25.         Size            =   8.25
  26.         Charset         =   0
  27.         Weight          =   700
  28.         Underline       =   0   'False
  29.         Italic          =   0   'False
  30.         Strikethrough   =   0   'False
  31.      EndProperty
  32.      ForeColor       =   &H000000FF&
  33.      Height          =   210
  34.      Left            =   3210
  35.      TabIndex        =   2
  36.      Top             =   3720
  37.      Width           =   795
  38.   End
  39.   Begin VB.Label lblNegras
  40.      Alignment       =   2  'Center
  41.      BackColor       =   &H00000000&
  42.      Caption         =   "00:00"
  43.      BeginProperty Font
  44.         Name            =   "Arial"
  45.         Size            =   8.25
  46.         Charset         =   0
  47.         Weight          =   700
  48.         Underline       =   0   'False
  49.         Italic          =   0   'False
  50.         Strikethrough   =   0   'False
  51.      EndProperty
  52.      ForeColor       =   &H00FFFFFF&
  53.      Height          =   1155
  54.      Left            =   780
  55.      TabIndex        =   1
  56.      Top             =   1980
  57.      Width           =   3795
  58.   End
  59.   Begin VB.Label lblBlancas
  60.      Alignment       =   2  'Center
  61.      BackColor       =   &H00FFFFFF&
  62.      Caption         =   "00:00"
  63.      BeginProperty Font
  64.         Name            =   "Arial"
  65.         Size            =   8.25
  66.         Charset         =   0
  67.         Weight          =   700
  68.         Underline       =   0   'False
  69.         Italic          =   0   'False
  70.         Strikethrough   =   0   'False
  71.      EndProperty
  72.      ForeColor       =   &H00000000&
  73.      Height          =   1035
  74.      Left            =   720
  75.      TabIndex        =   0
  76.      Top             =   480
  77.      Width           =   4335
  78.   End
  79.   Begin VB.Menu mnuArchivo
  80.      Caption         =   "&Archivo"
  81.      Begin VB.Menu mnuArchivoTiempo
  82.         Caption         =   "Tiempo"
  83.         Shortcut        =   ^T
  84.      End
  85.      Begin VB.Menu sep1
  86.         Caption         =   "-"
  87.      End
  88.      Begin VB.Menu mnuArchivoSalir
  89.         Caption         =   "Salir"
  90.         Shortcut        =   ^Q
  91.      End
  92.   End
  93. End
  94. Attribute VB_Name = "Form1"
  95. Attribute VB_GlobalNameSpace = False
  96. Attribute VB_Creatable = False
  97. Attribute VB_PredeclaredId = True
  98. Attribute VB_Exposed = False
  99. Option Explicit
  100.  
  101. Dim TurnoBlancas As Boolean
  102. Dim UnSeg As Date
  103. Dim Listo As Boolean
  104. Dim Iniciado As Boolean
  105. Dim Terminado As Boolean
  106.  
  107. Private Sub Form_KeyPress(KeyAscii As Integer)
  108. If Terminado Then
  109.    Exit Sub
  110. End If
  111. If Not Iniciado Then
  112.    Iniciado = True
  113.    Exit Sub
  114. End If
  115. If UCase(Chr(KeyAscii)) = "P" Then
  116.    Timer1.Enabled = Not Timer1.Enabled
  117.    lblPause.Visible = Not lblPause.Visible
  118.    Exit Sub
  119. End If
  120. TurnoBlancas = Not TurnoBlancas
  121. End Sub
  122.  
  123. Private Sub Form_Load()
  124. Me.Caption = "Chess Clock v" & App.Major & "." & App.Minor & "." & App.Revision
  125.  
  126. UnSeg = CDate(CDate("00:00:02") - CDate("00:00:01"))
  127. Listo = False
  128. TurnoBlancas = False
  129. Terminado = True
  130. lblPause.Visible = False
  131. Timer1.Enabled = False
  132. End Sub
  133.  
  134. Private Sub Form_Resize()
  135. Dim Tam As Long
  136.  
  137. If Me.WindowState = vbMinimized Then Exit Sub
  138.  
  139. lblBlancas.Width = Me.ScaleWidth
  140. lblBlancas.Height = Me.ScaleHeight / 2
  141. lblBlancas.Top = 0
  142. lblBlancas.Left = 0
  143.  
  144. lblNegras.Width = Me.ScaleWidth
  145. lblNegras.Height = Me.ScaleHeight / 2
  146. lblNegras.Top = lblBlancas.Height
  147. lblNegras.Left = 0
  148.  
  149. Tam = Me.ScaleY(lblBlancas.Height, vbTwips, vbPixels)
  150. Tam = Tam - ((Tam * 35) \ 100)
  151.  
  152. lblBlancas.Font.Size = Tam
  153. lblNegras.Font.Size = Tam
  154.  
  155. Tam = Tam - ((Tam * 30) \ 100)
  156. lblPause.Font.Size = Tam
  157. lblPause.Top = lblBlancas.Height - (lblPause.Height / 2)
  158. lblPause.Left = (lblNegras.Width / 2) - (lblPause.Width / 2)
  159. End Sub
  160.  
  161. Private Sub mnuArchivoSalir_Click()
  162. Timer1.Enabled = False
  163. Unload Me
  164. End Sub
  165.  
  166. Private Sub mnuArchivoTiempo_Click()
  167. Dim Tiempo As String
  168. Dim strAux As String
  169.  
  170. Reponer:
  171.  
  172. strAux = InputBox("Ingresar la cantidad de tiempo en minutos (solo numeros enteros. Maximo 59 minutos). ", "Definir Cantidad de Tiempo", "15")
  173. strAux = Trim(strAux)
  174. If strAux = "" Then
  175.    Exit Sub
  176. End If
  177. If Not IsNumeric(strAux) Then
  178.    MsgBox "Ingrese solo numeros enteros"
  179.    GoTo Reponer
  180. End If
  181. If Len(strAux) > 2 Then
  182.    MsgBox "Numero muy grande!"
  183.    GoTo Reponer
  184. End If
  185. If CLng(strAux) > 59 Then
  186.    MsgBox "Numero muy grande!"
  187.    GoTo Reponer
  188. End If
  189. SetStart (CLng(strAux))
  190. End Sub
  191.  
  192. Private Sub SetStart(Tiempo As Long)
  193. lblPause.Visible = False
  194. Terminado = False
  195. Iniciado = False
  196. lblBlancas.Caption = IIf(Tiempo < 10, "0" & Tiempo, Tiempo) & ":00"
  197. lblNegras.Caption = IIf(Tiempo < 10, "0" & Tiempo, Tiempo) & ":00"
  198. Timer1.Enabled = True
  199. End Sub
  200.  
  201. Private Sub Timer1_Timer()
  202. Dim T As Date
  203. Dim strAux As String
  204.  
  205. If Not Iniciado Then Exit Sub
  206.  
  207. If TurnoBlancas Then
  208.    T = CDate("00:" + lblBlancas.Caption) - UnSeg
  209.    strAux = Format(T, "HH:mm:ss")
  210.    lblBlancas.Caption = Mid(strAux, 4, 5)
  211.    If (Second(T) = 0) And (Minute(T) = 0) Then
  212.        Timer1.Enabled = False
  213.        lblNegras.ForeColor = vbRed
  214.        Terminado = True
  215.    End If
  216. Else
  217.    T = CDate("00:" + lblNegras.Caption) - UnSeg
  218.    strAux = Format(T, "HH:mm:ss")
  219.    lblNegras.Caption = Mid(strAux, 4, 5)
  220.    If (Second(T) = 0) And (Minute(T) = 0) Then
  221.        Timer1.Enabled = False
  222.        lblNegras.ForeColor = vbRed
  223.        Terminado = True
  224.    End If
  225. End If
  226. End Sub
  227.  

Espero te sirva...

Saludos!
4549  Programación / Ingeniería Inversa / Re: Alguien capaz de Avanzar o hechar una mano???? en: 27 Marzo 2013, 03:27 am
Opino que deberías leer el FAQ y hacer la introducción a Ollydbg.

No todos los programas se atacan usando strings references.

Necesitas aprender a caminar antes de querer correr.

Saludos!
4550  Programación / Ingeniería Inversa / Re: Alguien capaz de Avanzar o hechar una mano???? en: 26 Marzo 2013, 12:54 pm
Si esta en delphi, usa IDR.

La linea que has puesto no dice nada. ADODB es para acceder a bases de datos.
Páginas: 1 ... 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 [455] 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 ... 620
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines