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 - .:UND3R:.

#911
Hola a todos, me ha indagado la curiosidad de aprender a crackear en linux, pero me gustaría saber si hay algún tutorial actualizado de esto, he encontrado:

http://ricardonarvaja.info/WEB/OTROS/CRACKING EN LINUX JUAN JOSE

Pero no sé si es un documento que aún sirva, a ver si me ayudan, saludos.
#912
Sabiendo que tienes el source por qué no generas un error luego de llamar a la función?

Código (csharp) [Seleccionar]
...
..
..
.
byte[] executableSource = doSomethingToGetExecutableSource();
byte[] test = 0/0;
....
..
.


Esto generaría un error de división por cero, de esta forma con el debugger puedes manejar la excepción, anterior a la instrucción en donde se generó el error, está la secuencia en donde se tendrá el puntero de executableSource.

Alternativa 2:
Usar MASM dentro de C# y usar la instrucción INT 3 (este generará un error).

Alternativa 3: Leer el source, si sabes de C# no debería por que indagar con debugger y sobre todo si se tiene el source.
#913
No logro entender tu explicación, desconozco de C# pero la instrucción:

Código (csharp) [Seleccionar]
byte[] executableSource = doSomethingToGetExecutableSource();

En todos los lenguajes de programación que conozco retornaría un valor tras llamar a una función, esta variable es tipo byte, lo más lógico es que solo se retorne un código de notificación (sin errores o con errores), esto es utilizado para verificar si la función se logró ejecutar sin problemas:

FuncionA(){
if(a!=b){
  return ERROR1  // constante ERROR1 que simboliza a un simple número.
}else{
  ...
  ...
  return SUCCESS // constante SUCCESS que simboliza a un simple número.
}

y si es como tu dices, entonces tomas el source y borras todo pero todo y solo dejas la función:

Código (csharp) [Seleccionar]
doSomethingToGetExecutableSource();

Compilas, luego con un debugger, analizas las instrucciones de la función.

Las anotas en un notepad o lo que sea de tu agrado.

Vuelves a compilar pero con todo el source, ya con eso buscas la secuencia de instrucciones (estarías buscando en donde se encuentra la función en ejecutable).

ya localizada la función debes poner un BP en el inicio de ella para saber en que lugar es llamada, obteniendo ese lugar, lo más probable es que logres localizar el puntero a executableSource, en donde debería tener el source del . EXE que se convierte en no se qué o no se qué.
#914
¿la variable contiene un .exe? yo diría más bien que quieres decir que el ejecutable es un .exe y este contiene variables.

Y sé a que te refieres con que esté compilado, eso es lo que se hace en ingeniería inversa, sin el source y solo el ejecutable, intentar descubrir el funcionamiento interno.


http://foro.elhacker.net/ingenieria_inversa/faq_iquesteres_nuevo-t345798.0.html
#915
Si, se encuentran en el task manager de Windows, haciendo clic derecho a alguno de los procesos, como anécdota me ha ocurrido que programas antiguos son incompatibles con procesadores multi núcleo por lo cual establecer afinidad me ha ayudado bastante, al igual que cuando trabajas con procesos que consumen muchos recursos puedes acomodar los núcleos de forma que se administren satisfaciendo tus necesidades, lo malo es que estos cambios tienen una duración hasta que el equipo se reinicie, o si gustas puedes probar con prifinity:

http://www.bbses.info/mirrors/edgemeal.110mb.com/PriFinitty/index.htm

PD: no te dejes llevar por el diseño de la web.
#916
- Previamente configurado un DNS, se debe verificar si es que este coincide con la IP
http://www.cualesmiip.com/

ping mi.dns.org

Si no son iguales, el problema radica en la configuración del DNS



- Se debe verificar si los puertos se encuentran abiertos:
http://www.internautas.org/w-scanonline.php

Si el equipo se encuentra bajo un router, se debe configurar el DMZ para que este apunte a la dirección IP interna del equipo.

ipconfig

Citar
Dirección IPv4. . . . . . . . . . . . . . : 192.168.0.103
Puerta de enlace predeterminada . . . . . : 192.168.0.1

Debes abrir un navegador y escribir 192.168.0.1
de esta forma entrarás al router y podrás configurar el DMZ, en donde se deberá poner 192.168.0.103

PD: las IP's pueden diferir
#917
Visualizando la memoria con un debugger, por ejemplo si sabes que hay un string que dice "Registrado", basta con buscarlo en toda la memoria virtual del ejecutable, ya localizándolo, le puedes poner un breakpoint, de esta forma podrás detectar en que momento se toma la variable (MessageBoxA por ejemplo o alguna función encargada de mostrar tal mensaje), saludos.

PD: OllyDbg = ALT + M (muestra memoria) y luego ALT + B (Search in memory).
#918
Excelente forma de reconstruir el código, ya me hago una idea conociendo SFX, gracias :)
#919
Cita de: Ivinson en 20 Julio 2013, 09:48 AM
Después de días acostándome bien tarde, pude reconstruir instrucción por instrucción el script en un 98% creo. :)

@IvinsonCLS


">>>AUTOIT SCRIPT<<<"

#Region
#AutoIt3Wrapper_Icon=..\..\Documents\Olympus Team - [FORUM]\SG.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Comment=Made By SaGaRaS - Keygenme v1.0.0
#AutoIt3Wrapper_Res_Description=Made By SaGaRaS
#AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker
#EndRegion


;Quersumme(2*9)-5

Execute('BinaryToString("0x"&Stringlen("KAG")&"0")');0x30
BinaryToString("0x"&Stringlen("KAG")&"0");0x30


;$zahl+$split[$i]

;Funciones:
_K_Arrays_Definition_FuctionK()

Assign('_K0K', '0') ;_K0K = 0

_K_K_Variable_Definition_Function()

;Quersumme(1*9)-5

Execute('BinaryToString("0x"&Stringlen("KAG")&"0")')
BinaryToString("0x"&Stringlen("KAG")&"0")
BinaryToString("0x"&Stringlen("KAG")&"0")

;Quersumme(1*9)-5

Execute('BinaryToString("0x"&Stringlen("KAG")&"0")')
BinaryToString("0x"&Stringlen("KAG")&"0")
BinaryToString("0x"&Stringlen("KAG")&"0")

Assign('K_K0xA27CF4DDE783C56E2841C17AC45ED42D', 'SaGaRaS Keygenme v1.0.0')
Assign('K_K0x79D8DB8C440746D0E9E8E463D0F91BF5', 'Creditos ===> SaGaRaS')

int(Cos(Sin (65572.6630840562))^-1)
int(Cos(Sin (65572.6630840562))^-1)
int(Cos(Sin (65572.6630840562))^-1)
int(Cos(Sin (65572.6630840562))^-1)
int(Cos(Sin (65572.6630840562))^-1)
int(Cos(Sin (65572.6630840562))^-1)

Assign('K_K0x6E88D9576F8797146D9AE43531F02133', '64')

BitXOR(54,62)
BitXOR(54,62)
BitXOR(54,62)
BitXOR(54,62)
BitXOR(54,62)

Assign('K_K0x6E88D9576F8797146D9AE43531F02133', '64')
Assign('K_K0xAEA3E693E7F860565C390B046B852E39', 'HKCU')
Assign('K_K0x082CAF4CEEF4B5BBB1CF53EDE232343F', '(.{8})(.{4})(.{4})(.{4})(.{12})')

int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)
int(Cos(Sin (57017.0476385877))^-1)

Assign('K_K0x47B0B7E8B12DCC120EBDC471B5CD0A71', '\{\1-\2-\3-\4-\5\}')

;Quersumme(6*9)-5

Execute('BinaryToString("0x"&Stringlen("KAG")&"0")'); = 0
BinaryToString("0x"&Stringlen("KAG")&"0"); = 0
BinaryToString("0x"&Stringlen("KAG")&"0"); = 0

;Quersumme(6*9)-5

Execute('BinaryToString("0x"&Stringlen("KAG")&"0")')
BinaryToString("0x"&Stringlen("KAG")&"0"); = 0
BinaryToString("0x"&Stringlen("KAG")&"0"); = 0

Assign('K_K0xECE0D65036792F70FE9A4FB9CC22C081', 'Keygenme By SaGaRaS')

;Quersumme(7*9)-5

Execute('BinaryToString("0x"&Stringlen("KAG")&"0")'); = 0
BinaryToString("0x"&Stringlen("KAG")&"0"); = 0
BinaryToString("0x"&Stringlen("KAG")&"0"); = 0

;Quersumme(7*9)-5

Execute('BinaryToString("0x"&Stringlen("KAG")&"0")')
BinaryToString("0x"&Stringlen("KAG")&"0"); = 0
BinaryToString("0x"&Stringlen("KAG")&"0"); = 0

Assign('K_K0xD9BBD89559CA809C53EB7B78880866A5', 'Name:')
Assign('K_K0x5362D543C6D13F7B82B86E1DF63F597F', 'Serial:')
Assign('K_K0x93C2C9148BDE7A06A02305506F9F5C3D', 'Registrer')
Assign('K_K0x99FF9971D1203E2666ADEC5E1BAD4BC7', 'Made By SaGaRaS')

;Quersumme(5*9)-5

Execute('BinaryToString("0x"&Stringlen("KAG")&"0")')
BinaryToString("0x"&Stringlen("KAG")&"0") ; = 0
BinaryToString("0x"&Stringlen("KAG")&"0"); = 0

;Quersumme(5*9)-5

Execute('BinaryToString("0x"&Stringlen("KAG")&"0")'); = 0
BinaryToString("0x"&Stringlen("KAG")&"0"); = 0
BinaryToString("0x"&Stringlen("KAG")&"0"); = 0

;Quersumme(5*9)-5

Execute('BinaryToString("0x"&Stringlen("KAG")&"0")')
BinaryToString("0x"&Stringlen("KAG")&"0")
BinaryToString("0x"&Stringlen("KAG")&"0")

Assign('K_K0xA5C15E537BF037D7C07590E28854F577', 'MS Sans Serif')
BitXOR(40,32)
BitXOR(40,32)

Assign('K_K0xC13C28F186B29B0753F81E4281A6B74A', 'version 1.0.0')
BitXOR(19,27)
BitXOR(19,27)

Assign('K_K0xC46257C9DEE45E53DAE13BFF474946B7', 'sagsrdkwadd147')

int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)
int(Cos(Sin (83615.0192740841))^-1)

Assign('K_K0x5913E9041DBF93F9543D1101BAA7BEFA', 'Correct !!')

Assign('K_K0x8AF6EA3D9F5309CB7107361384A24564', 'MSN => sagarasanon@hotmail.com')

;--------------------------------------------------------------------
GUICreate( $K_K0xECE0D65036792F70FE9A4FB9CC22C081 , 269, 194, 192, 124)
BitXOR(70,78)
BitXOR(70,78)
BitXOR(70,78)

GUICtrlCreateLabel( $K_K0xD9BBD89559CA809C53EB7B78880866A5 , 16, 8, 35, 17)
GUICtrlCreateInput("", 56, 8, 169, 21)

GUICtrlCreateLabel( $K_K0x5362D543C6D13F7B82B86E1DF63F597F , 16, 48, 33, 17)
BitXOR(84,92)
BitXOR(84,92)

GUICtrlCreateInput("", 56, 48, 169, 21)

GUICtrlCreateButton( $K_K0x93C2C9148BDE7A06A02305506F9F5C3D , 65, 96, 139, 33)
BitXOR(50,58)
BitXOR(50,58)

GUICtrlCreateLabel( $K_K0x99FF9971D1203E2666ADEC5E1BAD4BC7 , 52, 136, 164, 28)
GUICtrlSetFont(-1, 14, 400, 0, $K_K0xA5C15E537BF037D7C07590E28854F577 )

GUICtrlCreateLabel( $K_K0xC13C28F186B29B0753F81E4281A6B74A , 102, 77, 65, 17)
GUISetState(@SW_SHOW)
BitXOR(21,29)
;--------------------------------------------------------------------
GUIGetMsg()

BitXOR(21,29)

int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)

RegRead($sHKCU & '\HARDWARE\DESCRIPTION\System\', $aSystem[$i])

int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)

RegRead($sHKCU & '\HARDWARE\DESCRIPTION\System\', $aSystem[$i])

int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
int(Cos(Sin (95524.4306303009))^-1)
;? Sin
;? Sin
;? Cos
;? Cos
;? Sin
;? Sin

RegRead($sHKCU & '\HARDWARE\DESCRIPTION\System\', $aSystem[$i])

StringStripWS($sOutput, 8) ;La opción "8" elimina los espacios.

;Quersumme(2*9)-5

Execute('BinaryToString("0x"&Stringlen("KAG")&"0")'); = 0
BinaryToString("0x"&Stringlen("KAG")&"0"); = 0
BinaryToString("0x"&Stringlen("KAG")&"0"); = 0

;StringLen

;Limpiamos los Edits.
GUICtrlSetData($Input1, "")
GUICtrlSetData($Input2, "")
BitXOR(21,29)
;-------------------------------------------------------------------


¿Cómo lograste hacer la reconstrucción?

Esto no va al tema, pero ¿Tú fuiste quien tradujo los tutoriales de corelancoder?, si es así te quería dar las gracias por este excelente trabajo (me terminé todo los tutoriales, notando tanto contenido, debiste haberte demorado bastante).

Mis felicitaciones  ;-)
#920
Ingeniería Inversa / Re: Ayuda
22 Julio 2013, 05:14 AM
Cita de: Singo423 en 21 Julio 2013, 02:15 AM
si un software "packed" no me deja usar la ingenieria inversa o el Ollydbg110 hay manera de desempacarlo? y pueda usar el Ollydbg?????
la vdd no se nada de esto pero creo esto es un dato sobre el packing que trae....

Microsoft Visual C# / Basic .NET

No es un packer, es cómo fue compilado