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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  [SCRIPT]Logeador de saltos V1.2
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [SCRIPT]Logeador de saltos V1.2  (Leído 6,372 veces)
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
[SCRIPT]Logeador de saltos V1.2
« en: 19 Octubre 2011, 21:39 pm »

Versión V1.2
¿Para que sirve?
-Si tenemos un programa trial podremos lanzar el script, luego caducarlo (cambiar la fecha) e ejecutar el script nuevamente, luego de eso comparamos y obtendremos el salto que nos bloquea el acceso al programa.
-Si dumpeamos un programa y tiene detección CRC podemos realizar los pasos comentados anteriormente y obtendremos el salto CRC.
-Si tenemos un serial verdadero podemos obtener el salto que nos considera el serial como válido.

Mejoras:
-Reparado error con 2 opciones activadas al mismo tiempo (filtro bucle con  detenerse en address específico, generaban un error que ya está solucionado)
-Log tipo de salto(idea de tinkipinki)
-Anterior versión solo logeaba saltos SHORT, ahora logea JMP NEAR
-Optimizado el código: V1.0=367 lineas V1.2=309 lineas (incluyendo las opciones adicionales)
-Filtrar los saltos SHORT
EDIT:tenía un pequeño error el código cuando lo subí, ahora está editado y funciona correctamente.

Imágenes:










Código de la versión 1.2:
Código
  1. /*
  2.    -=================================================================-
  3.  
  4.        Script realizado por :UND3R                                      
  5.        Script para : Logear saltos condicionales                                              
  6.        Configuracion: Saltar todas las excepciones y no tener ningún BP                                              
  7.        Fecha : 12/10/2011                                          
  8.  
  9.                    -=[ Comentario del Script ]=-                    
  10.     Ideal para logear todo tipo de saltos condicionales para posteriormente                                                              
  11.     compararlo con otro log con el fin de localizar saltos mágicos                                                                
  12.  
  13.    -=================================================================-
  14. */
  15. VAR AUX_EXIT
  16. VAR T_F_N_LOG
  17. VAR CONT_LOG_N
  18. VAR FILTRO
  19. VAR VEIP
  20. VAR RESP
  21. VAR N_LOGTXT
  22. VAR LOG_SALTO
  23. VAR VMEMORY
  24. VAR VMEMORY2
  25. VAR VMEMORY3
  26. VAR AUX_TS
  27. VAR TIPO_SALTO
  28. VAR AUX_TS2
  29. VAR LOG_BUCLE1
  30. VAR LOG_BUCLE2
  31. VAR COMP
  32. VAR VEIP2
  33. VAR MAX
  34. VAR MIN
  35. VAR CONT_LOG_N2
  36. VAR CANTI_LOG_SAVE
  37. VAR COMPROBAR_SALTO
  38. VAR SI_NO
  39. VAR VAR_EIP
  40. VAR CONT_JUMP
  41. VAR LOG_TIPO_SALTO
  42. VAR ANTIBUCLE2
  43. VAR ANTIBUCLE1
  44. VAR N_BUCLE1
  45. VAR CONT
  46. VAR INF_BUCLE2
  47. VAR INF_BUCLE1
  48. VAR INF_BUCLE
  49. VAR VEIP_2
  50. VAR FILTRAR_JMP_SHORT
  51. ASK "Introduzca el nombre del archivo a crear EJ: LOG1.TXT"
  52. MOV N_LOGTXT,$RESULT
  53. EVAL "{N_LOGTXT}"
  54. WRT $RESULT, "|N:   |ADDRESS:|EIP:    |SALTA: |BUCLE: |TIPO SALTO:|"
  55. WRTA $RESULT, "|---------------------------------------------------|"  
  56. PREG_FILTRO:
  57. MSGYN "¿Opciones avanzadas?"
  58. CMP 1,$RESULT
  59. JE AVANZADO
  60. TRACE:
  61. TICND "byte [EIP] > 6F && byte [EIP] < 80 || byte [EIP+1] > 7F && byte [EIP+1] < 90 && byte [EIP]==0F"
  62. CMP RESP,eip
  63. JE EXIT1
  64. OPCODE eip
  65. MOV LOG_SALTO,$RESULT_1
  66. ALLOC 50
  67. MOV VMEMORY,$RESULT
  68. MOV [VMEMORY],LOG_SALTO
  69. MOV VMEMORY2,VMEMORY
  70. ADD VMEMORY2,2
  71. BUCLE_TS:
  72. CMP [VMEMORY2],20,1
  73. JNE INC_VMEMORY2
  74. MOV VMEMORY3,VMEMORY2
  75. COMP_SHORT:
  76. INC VMEMORY3
  77. MOV AUX_TS,[VMEMORY3],5
  78. CMP AUX_TS,"SHORT"
  79. JE SALTO_TIPO1
  80. SALTO_TIPO2:
  81. SUB VMEMORY2,VMEMORY
  82. MOV TIPO_SALTO,[VMEMORY],VMEMORY2
  83. STR TIPO_SALTO
  84. FREE VMEMORY
  85. JMP TRACE0
  86. SALTO_TIPO1:
  87. ADD VMEMORY3,5
  88. MOV AUX_TS2,[VMEMORY3],1
  89. CMP AUX_TS2,2E
  90. JE SALTO_TIPO2
  91. SUB VMEMORY3,VMEMORY
  92. MOV TIPO_SALTO,[VMEMORY],VMEMORY3
  93. LOG TIPO_SALTO
  94. FREE VMEMORY
  95. CMP FILTRAR_JMP_SHORT,1
  96. JE TRACE
  97. JMP TRACE0
  98. INC_VMEMORY2:
  99. INC VMEMORY2
  100. JMP BUCLE_TS
  101. TRACE0:
  102. CMP eip,VEIP
  103. JE CONT_BUCLE
  104. MOV LOG_BUCLE1,0
  105. MOV LOG_BUCLE2,0
  106. TRACE1:
  107. OPCODE eip
  108. MOV VEIP,eip
  109. MOV VEIP2,VEIP
  110. ADD VEIP2,$RESULT_2
  111. STI
  112. CMP FILTRO,1
  113. JNZ TRACE2
  114. CMP eip,MAX
  115. JA TRACE2
  116. CMP eip,MIN
  117. JAE TRACE
  118. TRACE2:
  119. CMP LOG_BUCLE1,1
  120. JNE TRACE3
  121. MOV LOG_BUCLE2,"!"
  122. TRACE3:
  123. INC CONT_LOG_N
  124. ITOA CONT_LOG_N, 10.
  125. MOV CONT_LOG_N2,$RESULT
  126. CMP T_F_N_LOG,1
  127. JNE TRACE4
  128. CMP CONT_LOG_N2,CANTI_LOG_SAVE
  129. JE EXIT2
  130. TRACE4:
  131. CMP VEIP2,eip
  132. JE NO
  133. SI:
  134. MOV COMPROBAR_SALTO,1
  135. MOV SI_NO,"SI"
  136. JMP LOG_COMPR_TXT
  137. NO:
  138. MOV COMPROBAR_SALTO,0
  139. MOV SI_NO,"NO"
  140. LOG_COMPR_TXT:
  141. EVAL "|{CONT_LOG_N2}"
  142. MOV CONT_LOG_N2,$RESULT
  143. LOG_COMPR_TXT_:
  144. LEN CONT_LOG_N2
  145. CMP $RESULT,6
  146. JNE INC_LOG_COMPR_TXT
  147. ADD CONT_LOG_N2,"|"
  148. EVAL "{N_LOGTXT}"
  149. WRTA $RESULT,CONT_LOG_N2
  150. LOG_CMPR_TXT2:
  151. EVAL "{VEIP}"
  152. MOV VEIP_2,$RESULT
  153. LOG_CMPR_TXT2_:
  154. LEN VEIP_2
  155. CMP $RESULT,8
  156. JNE INC_LOG_CMPR_TXT2
  157. ADD VEIP_2,"|"
  158. EVAL "{N_LOGTXT}"
  159. WRTA $RESULT,VEIP_2,""
  160. LOG_CMPR_TXT3:
  161. EVAL "{eip}"
  162. MOV VAR_EIP,$RESULT
  163. LOG_CMPR_TXT3_:
  164. LEN VAR_EIP
  165. CMP $RESULT,8
  166. JNE INC_LOG_CMPR_TXT3
  167. ADD VAR_EIP,"|"
  168. EVAL "{N_LOGTXT}"
  169. WRTA $RESULT,VAR_EIP,""
  170. LOG_CMPR_TXT4:
  171. EVAL "{SI_NO}     |{LOG_BUCLE2}      |"
  172. MOV CONT_JUMP,$RESULT
  173. EVAL "{N_LOGTXT}"
  174. WRTA $RESULT,CONT_JUMP,""
  175. CMPR_LEN_TS:
  176. LEN TIPO_SALTO
  177. CMP $RESULT,B
  178. JNE INC_LEN_TS
  179. EVAL "{TIPO_SALTO}|"
  180. MOV LOG_TIPO_SALTO,$RESULT
  181. EVAL "{N_LOGTXT}"
  182. WRTA $RESULT,LOG_TIPO_SALTO,""
  183. CMP AUX_EXIT,1
  184. JE LOG_COMPR_TXT2
  185. JMP TRACE
  186. LOG_COMPR_TXT2:
  187. JMP EXIT
  188. STOP:
  189. BPHWS RESP, "x"
  190. JMP FILTRO
  191. EXIT1:
  192. BPHWC RESP
  193. EXIT:
  194. EVAL "{N_LOGTXT}"
  195. WRTA $RESULT,"`---------------------------------------------------´"
  196. ret
  197. EXIT2:
  198. MOV AUX_EXIT,1
  199. JMP TRACE4
  200. AVANZADO:
  201. MSGYN "¿Detener en Nº cantidad de datos logeados?"
  202. CMP 0,$RESULT
  203. JE AVANZADO2
  204. N_LOG_SAVE:
  205. ASK "Introduzca número de datos a logear:"
  206. MOV CANTI_LOG_SAVE,$RESULT
  207. ITOA CANTI_LOG_SAVE
  208. MOV CANTI_LOG_SAVE,$RESULT
  209. MOV T_F_N_LOG,1
  210. JMP FILTRO
  211. AVANZADO2:
  212. MSGYN "¿Detener log en address determinado?"
  213. CMP 0,$RESULT
  214. JE FILTRO
  215. BP_ADDRESS:
  216. ASK "Introduzca la dirección en donde desea detener el log"
  217. MOV RESP,$RESULT
  218. CMP RESP,0
  219. JNE STOP
  220. FILTRO:
  221. MSGYN "¿Excluir en el log rango de address?"
  222. CMP 0,$RESULT
  223. JE FILTRO_JMP
  224. FILTRO2:
  225. MOV FILTRO,1
  226. ASK "Introduzca el rango a excluir,desde:"
  227. MOV MIN,$RESULT
  228. ASK "hasta:"
  229. MOV MAX,$RESULT
  230. FILTRO_JMP:
  231. MSGYN "¿Excluir saltos SHORT?"
  232. CMP 0,$RESULT
  233. JE ANTIBUCLE
  234. MOV FILTRAR_JMP_SHORT,1
  235. ANTIBUCLE:
  236. MSGYN "¿Log inteligente (evita bucle's)?"
  237. CMP 0,$RESULT
  238. JE OLLYH
  239. ANTIBUCLE2:
  240. MOV ANTIBUCLE1,1
  241. ASK "Nº de veces que debe repetirse un salto para ser considerado bucle"
  242. MOV N_BUCLE1,$RESULT
  243. OLLYH:
  244. MSGYN "¿Ocultar OllyDBG mientras se ejecuta el script?"
  245. CMP $RESULT,0
  246. JE GOTRACE
  247. DBH
  248. GOTRACE:
  249. JMP TRACE
  250. CONT_BUCLE:
  251. INC CONT
  252. MOV LOG_BUCLE1,1
  253. CMP CONT,N_BUCLE1
  254. JE SALTAR_BUCLE
  255. JMP TRACE1
  256. SALTAR_BUCLE:
  257. CMP COMPROBAR_SALTO,0
  258. JE NO_SALTA_BUCLE
  259. SI_SALTA_BUCLE:
  260. MOV INF_BUCLE2,VEIP2
  261. JMP BUCLE2
  262. NO_SALTA_BUCLE:
  263. MOV INF_BUCLE,VEIP
  264. ADD INF_BUCLE,1
  265. MOV INF_BUCLE,[INF_BUCLE],1
  266. MOV INF_BUCLE2,eip
  267. ADD INF_BUCLE2,INF_BUCLE
  268. ADD INF_BUCLE2,2
  269. CMP INF_BUCLE,7F
  270. JBE BUCLE2
  271. SUB INF_BUCLE2,100
  272. BUCLE2:
  273. EVAL "|----[{VEIP}]-¡BUCLE ENCONTRADO!------------------"
  274. MOV CONT_JUMP,$RESULT
  275. BUCLE2_:
  276. LEN CONT_JUMP
  277. CMP $RESULT,34
  278. JNE INC_BUCLE2
  279. ADD CONT_JUMP,"|"
  280. EVAL "{N_LOGTXT}"
  281. WRTA $RESULT,CONT_JUMP
  282. BUCLE_CONT_:
  283. BP INF_BUCLE2
  284. RUN
  285. CMP INF_BUCLE2,eip
  286. JNE ERROR1
  287. BC INF_BUCLE2
  288. MOV CONT,0
  289. MOV LOG_BUCLE1,0
  290. MOV LOG_BUCLE2,0
  291. JMP TRACE
  292. INC_LEN_TS:
  293. ADD TIPO_SALTO," "
  294. JMP CMPR_LEN_TS
  295. INC_BUCLE2:
  296. ADD CONT_JUMP,"-"
  297. JMP BUCLE2_
  298. INC_LOG_CMPR_TXT3:
  299. ADD VAR_EIP," "
  300. JMP LOG_CMPR_TXT3_
  301. INC_LOG_CMPR_TXT2:
  302. ADD VEIP_2," "
  303. JMP LOG_CMPR_TXT2_
  304. INC_LOG_COMPR_TXT:
  305. ADD CONT_LOG_N2," "
  306. JMP LOG_COMPR_TXT_
  307. ERROR1:
  308. MSG "Error inesperado #1"
  309. RET
  310.  



Versión V1.0
Este script como el título lo dice se encarga de logear todos los diferentes tipos de saltos condicionales hasta un cierto punto especificado por el usuario y los guarda en un documento de texto (archivo log) indicando el address en donde estaba el salto,si se realizó el salto o no y si se realizó indica hacia donde salto, esto puede ser útil para encontrar comprobaciones CRC, antidump de tamaño o detección de si el programa está siendo ejecutado bajo una máquina virtual, la idea es generar dos log
EJ: archivo desempaqueta=Log1 archivo empaquetado=Log2, ambos detenidos en el OEP, de esta forma con algún comparador de textos podremos ver que salto tienen de diferencia siendo este el posible causante de las detecciones mencionadas anteriormente.

Imágen de logs:



=el número de log, este es el que se debe especificar dentro de las opciones si se quiere detener en N cantidad de log especificado.

ADDRESS=Indica en donde está el salto encontrado

EIP=Indica la ubicación luego de que se ejecutó el salto

BUCLE=!: indica que se está repitiendo un salto
           0:Indica que NO se está repitiendo el salto

SALTA: SI/NO este es la acción más importante del script



*En esta imagen muestra la detección de un bucle, para evitar que se repita en el log, con la opción de log inteligente en vez de ver los address repetidos, veremos una alerta


-Nombre del .txt:
El script en primera instancia nos preguntará con que nombre queremos guardar el log

-Opciones avanzadas:
Si no optamos por esta opción el script comenzará a logear todos

-Detener en Nº cantidad de datos logeados:
Esta opción nos da la posibilidad de que el script se detenga en una cierta cantidad de números de registro.

-Detener en un determinado address:
Si queremos detener el script en un cierto address

-Excluir en el log rango de address:
Nos da la posibilidad de poder excluir un rango de address, estas no serán mostradas en el log, ideal para excluir los saltos de las API'S si elegimos esta opción nos preguntara desde donde queremos que excluya y hasta que address

-Log inteligente:
esta opción evita bucles ideal para evitar tener repetidos datos en el log que pueden estorbar la comparación, si elegimos esta opción nos preguntará cuantas veces debe pasar el programa por un mismo salto para que sea considerado bucle
*Recomendación:4
*Actualmente no considera como bucle en donde un salto salta a otro salto
-Ocultar OllyDBG mientras se ejecuta el script:
esta opción habilita el comando DBGH

SCRIPT:
Código
  1. /*
  2.    -=================================================================-
  3.  
  4.        Script realizado por :UND3R                                      
  5.        Script para : Logear saltos condicionales                                              
  6.        Configuracion: Saltar todas las excepciones y no tener ningún BP                                              
  7.        Fecha : 12/10/2011                                          
  8.  
  9.                    -=[ Comentario del Script ]=-                    
  10.     Ideal para logear todo tipo de saltos condicionales para posteriormente                                                              
  11.     compararlo con otro log con el fin de localizar saltos mágicos                                                                
  12.  
  13.    -=================================================================-
  14. */
  15. VAR INFO_N4
  16. VAR STR_4
  17. VAR STR_2
  18. VAR STR_1
  19. VAR INFO_N3
  20. VAR INFO_N2
  21. VAR INFO_N
  22. VAR CONT_LOG_N2
  23. VAR AUX_EXIT
  24. VAR T_F_N_LOG
  25. VAR CANTI_LOG_SAVE
  26. VAR CONT_LOG_N
  27. VAR SI_NO
  28. VAR CONT_JUMP
  29. VAR N_LOGTXT
  30. VAR LOG_BUCLE2
  31. VAR LOG_BUCLE1
  32. VAR COMPROBAR_SALTO
  33. VAR INF_BUCLE2
  34. VAR INF_BUCLE
  35. VAR N_BUCLE1
  36. VAR CONT
  37. VAR ANTIBUCLE1
  38. VAR FILTRO
  39. VAR MIN
  40. VAR MAX
  41. VAR COMP
  42. VAR RESP
  43. VAR VEIP2
  44. VAR VEIP
  45. ASK "Introduzca el nombre del archivo a crear EJ: LOG1.TXT"
  46. MOV N_LOGTXT,$RESULT
  47. EVAL "{N_LOGTXT}"
  48. WRT $RESULT, "|N:   |ADDRESS:|EIP:    |BUCLE: |SALTA: |"
  49. WRTA $RESULT, "|---------------------------------------|"  
  50. PREG_FILTRO:
  51. MSGYN "¿Opciones avanzadas?"
  52. CMP 1,$RESULT
  53. JE AVANZADO
  54. TRACE:
  55. TICND "byte [EIP] > 6F && byte [EIP] < 80"
  56. CMP RESP,eip
  57. JE EXIT1
  58. CMP eip,VEIP
  59. JE CONT_BUCLE
  60. MOV LOG_BUCLE1,0
  61. MOV LOG_BUCLE2,0
  62. TRACE1:
  63. MOV COMP,[eip],1
  64. CMP COMP,70
  65. JB TRACE
  66. CMP COMP,7F
  67. JA TRACE
  68. OPCODE eip
  69. MOV VEIP,eip
  70. MOV VEIP2,VEIP
  71. ADD VEIP2,$RESULT_2
  72. STI
  73. CMP FILTRO,1
  74. JNZ TRACE2
  75. CMP eip,MAX
  76. JA TRACE2
  77. CMP eip,MIN
  78. JAE TRACE
  79. TRACE2:
  80. CMP LOG_BUCLE1,1
  81. JNE TRACE3
  82. MOV LOG_BUCLE2,"!"
  83. TRACE3:
  84. INC CONT_LOG_N
  85. ITOA CONT_LOG_N, 10.
  86. MOV CONT_LOG_N2,$RESULT
  87. CMP T_F_N_LOG,1
  88. JNE TRACE4
  89. CMP CONT_LOG_N2,CANTI_LOG_SAVE
  90. JE EXIT2
  91. TRACE4:
  92. CMP VEIP2,eip
  93. JE NO
  94. SI:
  95. MOV COMPROBAR_SALTO,1
  96. MOV SI_NO,"SI"
  97. JMP LOG_COMPR_TXT
  98. NO:
  99. MOV COMPROBAR_SALTO,0
  100. MOV SI_NO,"NO"
  101. LOG_COMPR_TXT:
  102. LEN CONT_LOG_N2
  103. MOV INFO_N,$RESULT
  104. CMP INFO_N,1
  105. JE LOG_CMPR_TXT_1
  106. CMP INFO_N,2
  107. JE LOG_CMPR_TXT_2
  108. CMP INFO_N,3
  109. JE LOG_CMPR_TXT_3
  110. CMP INFO_N,4
  111. JE LOG_CMPR_TXT_4
  112. CMP INFO_N,5
  113. JE LOG_CMPR_TXT__5
  114. JMP ERROR2
  115. LOG_CMPR_TXT_1:
  116. EVAL "|{CONT_LOG_N2}    |"
  117. MOV CONT_JUMP,$RESULT
  118. EVAL "{N_LOGTXT}"
  119. WRTA $RESULT,CONT_JUMP
  120. JMP LOG_CMPR_TXT2
  121. LOG_CMPR_TXT_2:
  122. EVAL "|{CONT_LOG_N2}   |"
  123. MOV CONT_JUMP,$RESULT
  124. EVAL "{N_LOGTXT}"
  125. WRTA $RESULT,CONT_JUMP
  126. JMP LOG_CMPR_TXT2
  127. LOG_CMPR_TXT_3:
  128. EVAL "|{CONT_LOG_N2}  |"
  129. MOV CONT_JUMP,$RESULT
  130. EVAL "{N_LOGTXT}"
  131. WRTA $RESULT,CONT_JUMP
  132. JMP LOG_CMPR_TXT2
  133. LOG_CMPR_TXT_4:
  134. EVAL "|{CONT_LOG_N2} |"
  135. MOV CONT_JUMP,$RESULT
  136. EVAL "{N_LOGTXT}"
  137. WRTA $RESULT,CONT_JUMP
  138. JMP LOG_CMPR_TXT2
  139. LOG_CMPR_TXT__5:
  140. EVAL "|{CONT_LOG_N2}|"
  141. MOV CONT_JUMP,$RESULT
  142. EVAL "{N_LOGTXT}"
  143. WRTA $RESULT,CONT_JUMP
  144. LOG_CMPR_TXT2:
  145. ITOA VEIP
  146. MOV STR_1,$RESULT
  147. LEN STR_1
  148. MOV INFO_N2,$RESULT
  149. CMP INFO_N2,5
  150. JE LOG_CMPR_TXT_5
  151. CMP INFO_N2,6
  152. JE LOG_CMPR_TXT_6
  153. CMP INFO_N2,7
  154. JE LOG_CMPR_TXT_7
  155. CMP INFO_N2,8
  156. JE LOG_CMPR_TXT_8
  157. JMP ERROR3
  158. LOG_CMPR_TXT_5:
  159. EVAL "{VEIP}   |"
  160. MOV CONT_JUMP,$RESULT
  161. EVAL "{N_LOGTXT}"
  162. WRTA $RESULT,CONT_JUMP,""
  163. JMP LOG_CMPR_TXT3
  164. LOG_CMPR_TXT_6:
  165. EVAL "{VEIP}  |"
  166. MOV CONT_JUMP,$RESULT
  167. EVAL "{N_LOGTXT}"
  168. WRTA $RESULT,CONT_JUMP,""
  169. JMP LOG_CMPR_TXT3
  170. LOG_CMPR_TXT_7:
  171. EVAL "{VEIP} |"
  172. MOV CONT_JUMP,$RESULT
  173. EVAL "{N_LOGTXT}"
  174. WRTA $RESULT,CONT_JUMP,""
  175. JMP LOG_CMPR_TXT3
  176. LOG_CMPR_TXT_8:
  177. EVAL "{VEIP}|"
  178. MOV CONT_JUMP,$RESULT
  179. EVAL "{N_LOGTXT}"
  180. WRTA $RESULT,CONT_JUMP,""
  181. LOG_CMPR_TXT3:
  182. ITOA eip
  183. MOV STR_2,$RESULT
  184. LEN STR_2
  185. MOV INFO_N3,$RESULT
  186. CMP INFO_N3,5
  187. JE LOG_CMPR_TXT2_5
  188. CMP INFO_N3,6
  189. JE LOG_CMPR_TXT2_6
  190. CMP INFO_N3,7
  191. JE LOG_CMPR_TXT2_7
  192. CMP INFO_N3,8
  193. JE LOG_CMPR_TXT2_8
  194. JMP ERROR4
  195. LOG_CMPR_TXT2_5:
  196. EVAL "{eip}   |"
  197. MOV CONT_JUMP,$RESULT
  198. EVAL "{N_LOGTXT}"
  199. WRTA $RESULT,CONT_JUMP,""
  200. JMP LOG_CMPR_TXT4
  201. LOG_CMPR_TXT2_6:
  202. EVAL "{eip}  |"
  203. MOV CONT_JUMP,$RESULT
  204. EVAL "{N_LOGTXT}"
  205. WRTA $RESULT,CONT_JUMP,""
  206. JMP LOG_CMPR_TXT4
  207. LOG_CMPR_TXT2_7:
  208. EVAL "{eip} |"
  209. MOV CONT_JUMP,$RESULT
  210. EVAL "{N_LOGTXT}"
  211. WRTA $RESULT,CONT_JUMP,""
  212. JMP LOG_CMPR_TXT4
  213. LOG_CMPR_TXT2_8:
  214. EVAL "{eip}|"
  215. MOV CONT_JUMP,$RESULT
  216. EVAL "{N_LOGTXT}"
  217. WRTA $RESULT,CONT_JUMP,""
  218. LOG_CMPR_TXT4:
  219. EVAL "{LOG_BUCLE2}      |{SI_NO}     |"
  220. MOV CONT_JUMP,$RESULT
  221. EVAL "{N_LOGTXT}"
  222. WRTA $RESULT,CONT_JUMP,""
  223. CMP AUX_EXIT,1
  224. JE LOG_COMPR_TXT2
  225. JMP TRACE
  226. LOG_COMPR_TXT2:
  227. JMP EXIT
  228. STOP:
  229. BPHWS RESP, "x"
  230. JMP FILTRO
  231. EXIT1:
  232. BPHWC RESP
  233. EXIT:
  234. EVAL "{N_LOGTXT}"
  235. WRTA $RESULT,"`---------------------------------------´"
  236. ret
  237. EXIT2:
  238. MOV AUX_EXIT,1
  239. JMP TRACE4
  240. AVANZADO:
  241. MSGYN "¿Detener en Nº cantidad de datos logeados?"
  242. CMP 0,$RESULT
  243. JE AVANZADO2
  244. N_LOG_SAVE:
  245. ASK "Introduzca número de datos a logear:"
  246. MOV CANTI_LOG_SAVE,$RESULT
  247. ITOA CANTI_LOG_SAVE
  248. MOV CANTI_LOG_SAVE,$RESULT
  249. MOV T_F_N_LOG,1
  250. JMP FILTRO
  251. AVANZADO2:
  252. MSGYN "¿Detener log en address determinado?"
  253. CMP 0,$RESULT
  254. JE FILTRO
  255. BP_ADDRESS:
  256. ASK "Introduzca la dirección en donde desea detener el log"
  257. MOV RESP,$RESULT
  258. CMP RESP,0
  259. JNE STOP
  260. FILTRO:
  261. MSGYN "¿Excluir en el log rango de address?"
  262. CMP 0,$RESULT
  263. JE ANTIBUCLE
  264. FILTRO2:
  265. MOV FILTRO,1
  266. ASK "Introduzca el rango a excluir,desde:"
  267. MOV MIN,$RESULT
  268. ASK "hasta:"
  269. MOV MAX,$RESULT
  270. ANTIBUCLE:
  271. MSGYN "¿Log inteligente (evita bucle's)?"
  272. CMP 0,$RESULT
  273. JE OLLYH
  274. ANTIBUCLE2:
  275. MOV ANTIBUCLE1,1
  276. ASK "Nº de veces que debe repetirse un salto para ser considerado bucle"
  277. MOV N_BUCLE1,$RESULT
  278. OLLYH:
  279. MSGYN "¿Ocultar OllyDBG mientras se ejecuta el script?"
  280. CMP $RESULT,0
  281. JE GOTRACE
  282. DBH
  283. GOTRACE:
  284. JMP TRACE
  285. CONT_BUCLE:
  286. INC CONT
  287. MOV LOG_BUCLE1,1
  288. CMP CONT,N_BUCLE1
  289. JE SALTAR_BUCLE
  290. JMP TRACE1
  291. SALTAR_BUCLE:
  292. CMP COMPROBAR_SALTO,0
  293. JE NO_SALTA_BUCLE
  294. SI_SALTA_BUCLE:
  295. MOV INF_BUCLE2,VEIP2
  296. JMP BUCLE2
  297. NO_SALTA_BUCLE:
  298. MOV INF_BUCLE,VEIP
  299. ADD INF_BUCLE,1
  300. MOV INF_BUCLE,[INF_BUCLE],1
  301. MOV INF_BUCLE2,eip
  302. ADD INF_BUCLE2,INF_BUCLE
  303. ADD INF_BUCLE2,2
  304. CMP INF_BUCLE,7F
  305. JBE BUCLE2
  306. SUB INF_BUCLE2,100
  307. BUCLE2:
  308. ITOA VEIP
  309. MOV STR_4,$RESULT
  310. LEN STR_4
  311. MOV INFO_N4,$RESULT
  312. CMP INFO_N4,5
  313. JE BUCLE_5
  314. CMP INFO_N4,6
  315. JE BUCLE_6
  316. CMP INFO_N4,7
  317. JE BUCLE_7
  318. CMP INFO_N4,8
  319. JE BUCLE_8
  320. BUCLE_5:
  321. EVAL "|----[{VEIP}]-¡BUCLE ENCONTRADO!---------|"
  322. MOV CONT_JUMP,$RESULT
  323. EVAL "{N_LOGTXT}"
  324. WRTA $RESULT,CONT_JUMP
  325. JMP BUCLE_CONT_
  326. BUCLE_6:
  327. EVAL "|----[{VEIP}]-¡BUCLE ENCONTRADO!--------|"
  328. MOV CONT_JUMP,$RESULT
  329. EVAL "{N_LOGTXT}"
  330. WRTA $RESULT,CONT_JUMP
  331. BP INF_BUCLE2
  332. JMP BUCLE_CONT_
  333. BUCLE_7:
  334. EVAL "|----[{VEIP}]-¡BUCLE ENCONTRADO!-------|"
  335. MOV CONT_JUMP,$RESULT
  336. EVAL "{N_LOGTXT}"
  337. WRTA $RESULT,CONT_JUMP
  338. JMP BUCLE_CONT_
  339. BUCLE_8:
  340. EVAL "|----[{VEIP}]-¡BUCLE ENCONTRADO!------|"
  341. MOV CONT_JUMP,$RESULT
  342. EVAL "{N_LOGTXT}"
  343. WRTA $RESULT,CONT_JUMP
  344. BUCLE_CONT_:
  345. BP INF_BUCLE2
  346. EOB COMPROBAR
  347. RUN
  348. COMPROBAR:
  349. CMP INF_BUCLE2,eip
  350. JNE ERROR1
  351. BC INF_BUCLE2
  352. MOV CONT,0
  353. MOV LOG_BUCLE1,0
  354. MOV LOG_BUCLE2,0
  355. JMP TRACE
  356. ERROR1:
  357. MSG "Error inesperado #1"
  358. RET
  359. ERROR2:
  360. MSG "Los datos registrados exceden la cantidad máxima permitida"
  361. RET
  362. ERROR3:
  363. MSG "Error inesperado #2"
  364. RET
  365. ERROR4:
  366. MSG "Error inesperado #3"
  367. RET

Si no lo entendieron bien, les pido que lo utilicen y notarán que no es nada complicado de entender.

Saludos UND3R

PD: otra funcionalidad puede ser encontrar el salto decisivo de un programa teniendo un serial correcto.
« Última modificación: 26 Octubre 2011, 17:47 pm por .:UND3R:. » En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: [SCRIPT]Logeador de saltos!
« Respuesta #1 en: 19 Octubre 2011, 22:53 pm »

Estos scripts que haces, es ASM no? y necesitaria un compilador para ejecutar codigo en ASM no? o se guarda con alguna extension?esto lo pregunto para yo saber, porque pienso que en realidad este script se pondra en algun lugar del Olly para luego ser interpretado por el no?
En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: [SCRIPT]Logeador de saltos!
« Respuesta #2 en: 19 Octubre 2011, 22:56 pm »

Estos scripts que haces, es ASM no? y necesitaria un compilador para ejecutar codigo en ASM no? o se guarda con alguna extension?esto lo pregunto para yo saber, porque pienso que en realidad este script se pondra en algun lugar del Olly para luego ser interpretado por el no?

No es ASM, se usa OllyScript que es un plugins encargado de leer script's

PD: tu crackme ID:UND3R PASS:ZSI8

luego el tute jeje

Saludos
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: [SCRIPT]Logeador de saltos!
« Respuesta #3 en: 19 Octubre 2011, 23:25 pm »

Jajaja se espera :P

Y entonces estos scripts los creas desde el mismo olly? lenguaje Olly entonces? xD
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.513


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: [SCRIPT]Logeador de saltos!
« Respuesta #4 en: 20 Octubre 2011, 00:45 am »

lenguaje Olly entonces? xD

No. http://odbgscript.sourceforge.net/
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: [SCRIPT]Logeador de saltos!
« Respuesta #5 en: 20 Octubre 2011, 15:36 pm »

Gracias e hice mal en preguntar ya que lo leere en la introduccion de ricardo narvaja alguna vez pienso, no he llegado, saludos!
En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: [SCRIPT]Logeador de saltos!
« Respuesta #6 en: 20 Octubre 2011, 17:32 pm »

Gracias e hice mal en preguntar ya que lo leere en la introduccion de ricardo narvaja alguna vez pienso, no he llegado, saludos!

Leyendo la introducción no deberías tener problemas.

Saludos
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Tinkipinki

Desconectado Desconectado

Mensajes: 242



Ver Perfil
Re: [SCRIPT]Logeador de saltos!
« Respuesta #7 en: 20 Octubre 2011, 18:54 pm »

Hola .:UND3R:.:

Lo he probado y funciona muy bien... ;-)

Solo un comentario, en el listado no podria aparecer el tipo de JMP que es por ejemplo JNE, JNZ....etc
Seguro que si no lo has puesto es que debe tener su complicacion.

Saludos
En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: [SCRIPT]Logeador de saltos!
« Respuesta #8 en: 21 Octubre 2011, 02:25 am »

Excelente estoy trabajando con una nueva versión y gracias por la idea, no lo había pensado, mejoraré la detección de antibucles y agregaré los saltos que se efectuaron

Gracias por probra el script

Saludos
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: [SCRIPT]Logeador de saltos V1.2
« Respuesta #9 en: 26 Octubre 2011, 07:26 am »

Nueva versión jeje
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
!!!programa logeador de ventanas¡¡¡ « 1 2 »
Programación Visual Basic
zerofive 10 3,533 Último mensaje 22 Julio 2006, 21:52 pm
por zerofive
videos con saltos
Multimedia
ferdipd 0 1,537 Último mensaje 10 Agosto 2006, 16:01 pm
por ferdipd
reproduccion a saltos
Multimedia
dArK_gAp 0 1,685 Último mensaje 20 Agosto 2006, 22:22 pm
por dArK_gAp
Saltos de linea
PHP
zhynar_X 2 5,553 Último mensaje 8 Septiembre 2007, 17:59 pm
por дٳŦ٭
Script JS o PHP para dar saltos de linea
PHP
H4RR13R 8 4,711 Último mensaje 19 Febrero 2008, 13:21 pm
por H4RR13R
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines