Sé que el temas es viejo pero ya que ha sido revivido y como grammar nazi que soy he de apuntar que el término "desencriptar" no existe en castellano. Es "descifrar".
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.
#61
Tutoriales y Manuales de Malwares / Re:Tutorial como Desencriptar Paswords
Mayo 22, 2013, 06:37:48 PM #62
ASM / Re:[FASM] Downloader
Mayo 19, 2013, 09:22:28 AM
Estás llamando a las etiquetas con call por lo tanto debes acabar con ret para volver desde dónde fuiste llamado. De otra forma llenas el stack de punteros de retorno que no usas y la aplicación crashearía si no fuese porque acabas el proceso xD
Saludos
Saludos
#63
Off Topic / Re:Primer sorteo en Underc0de! [Participa!]
Mayo 18, 2013, 06:41:12 PM
Karcrack - 59
#64
ASM / Re:Obtener dia de la semana 16 bits.
Mayo 15, 2013, 04:47:39 PM
Sí, lo copié de tu código sin pensar y no caí en que eran punteros de dos bytes
#65
ASM / Re:Obtener dia de la semana 16 bits.
Mayo 15, 2013, 03:20:59 PM
No he programado nunca para 16bits... Tal vez sea por no limpiar la parte superior de AX. Mira a ver así:
Código: asm
mov ah,0x2A
int 21h
xor ah, ah
mov bx, ax
shl bx, 2
push [Dias + bx]
call _print #66
ASM / Re:Obtener dia de la semana 16 bits.
Mayo 15, 2013, 03:09:45 PM
A eso me refería pero se puede simplificar más:
Código: asm
mov ah,0x2A
int 21h
mov bx, ax
shl bx, 2
push [Dias + bx]
call _print #67
ASM / Re:Obtener dia de la semana 16 bits.
Mayo 15, 2013, 02:01:39 PM
¿Por qué no usar un array de punteros?
#68
C / C++ / Re:[Aporte] Encriptador
Mayo 14, 2013, 06:07:34 PM
Buen código
Un pequeño apunte pedante: en castellano no existe el término "encriptador" sería "cifrador".
Saludos
Un pequeño apunte pedante: en castellano no existe el término "encriptador" sería "cifrador".Saludos
#69
Códigos Fuentes / Re:[C] Explorando la IT
Mayo 14, 2013, 03:03:23 PM
El compilador es terriblemente inteligente y es capaz de ver que dentro del scope (ámbito) actual ese código no será jamás ejecutado. Puedes desactivar casi todas las optimizaciones del compilador y obligarle a compilar a piñón.
Estuve estudiando el tema de los compiladores y es realmente interesante. Te recomiendo la lectura de: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login de Alfred Aho, Ravi Sethi, Jeffrey Ullman.
En ASM no pasa porque se trata de un ensamblador. Algún HLA (High Level Assambly) hace estas optimizaciones y muchas otras.
Saludos
Estuve estudiando el tema de los compiladores y es realmente interesante. Te recomiendo la lectura de: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login de Alfred Aho, Ravi Sethi, Jeffrey Ullman.
En ASM no pasa porque se trata de un ensamblador. Algún HLA (High Level Assambly) hace estas optimizaciones y muchas otras.
Saludos
#70
Códigos Fuentes / Re:[C] Explorando la IT
Mayo 14, 2013, 02:24:16 PM
@mDrinky: Revisa la IAT del ejecutable, sospecho que el compilador ha sido más listo que tú y ha quitado todo lo que hay después del return 0; xD
#71
C / C++ / [PoC] kPreprocessor - Capa extra de preprocesado Python en Visual Studio
Mayo 10, 2013, 09:28:00 AM
Se trata de una capa extra de preprocesado que se ejecuta antes que la propia del lenguaje. La utilidad principal es generar constantes complejas en tiempo de compilación. Yo lo uso, entre otras cosas, para el cifrado de cadenas en mis proyectos malignos
Es mucho más flexible que los templates de C++
Necesitarás Python.
Para instalarla en tu proyecto debes de editar el fichero de proyecto (.vcxproj en el caso de VC) añadiendo este código XML:
Código: xml
Obviamente la ruta hay que cambiarla para que apunte al fichero .targets que aquí adjunto:
Código: xml
En este fichero hay que cambiar las rutas para que apunten a este fichero .py:
Código: python
Después de la instalación podéis hacer cosas como ésta:
Header.h:
Código: cpp
Main.cpp:
Código: cpp
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login:
Código: text

Hay errores en la detección de tokens ya que se hace con expresiones regulares algo chapuzas
Todavía sigo trabajando en esto, así que seguid atentos para mejoras y arreglo de errores... y una explicación más elaborada en cuanto tenga tiempo xD
Nota: No se expandirán macros originales (C/C++ es en ejemplo) en la llamada a funciones. [Debido al diseño, no será reparado]
Saludos
Es mucho más flexible que los templates de C++Necesitarás Python.
Para instalarla en tu proyecto debes de editar el fichero de proyecto (.vcxproj en el caso de VC) añadiendo este código XML:
<Import Project="C:\Users\Karcrack\Desktop\kPreprocessor\kPreprocessor.targets" />Obviamente la ruta hay que cambiarla para que apunte al fichero .targets que aquí adjunto:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" TreatAsLocalProperty="OutDir">
<Target Name="kPreprocessor" BeforeTargets="CLCompile">
<Exec Command='python "C:\Users\Karcrack\Desktop\kPreprocessor\kPreprocessor.py" %(CLInclude.FullPath) %(CLCompile.FullPath)' />
</Target>
<Target Name="kCleanPreProc" AfterTargets="Link">
<Exec Command='python "C:\Users\Karcrack\Desktop\kPreprocessor\kPreprocessor.py" -clean' />
</Target>
</Project>En este fichero hay que cambiar las rutas para que apunten a este fichero .py:
# -*- coding: utf8 -*-
from sys import argv
from shutil import copyfile
import os, re
def save2dump(s):
f = open("./dump","a")
f.write(s)
f.close()
if __name__ == "__main__":
if argv[1] == "-clean":
print "[kP] Limpiando y restaurando ficheros."
for file_name in os.listdir("./"):
root, ext = os.path.splitext(file_name)
if ext == ".kbak":
os.remove(os.path.join("./", root))
os.rename(os.path.join("./", file_name), os.path.join("./", root))
os.remove("./dump")
else:
file_path = argv[1]
print "[kP] Trabajando sobre el fichero '%s'" % (file_path)
#Backup
copyfile(file_path, file_path+".kbak")
#Read SRC
with open(file_path, "r") as r:
raw = r.read()
#INCLUDE_PYSRC()
for i in re.findall("(?<=INCLUDE_PYSRC\()(.*?)(?=\)\n)", raw, re.DOTALL):
with open(os.path.abspath(i), 'r') as fi:
save2dump(fi.read()+"\n")
#DEFINE_PYSRC()
r = re.findall("(?<=DEFINE_PYSRC\(\n)(.*?)(?=\)DEFINE_END\(\))", raw, re.DOTALL)
if len(r)>0:
save2dump(''.join(r) + "\n")
#Load src
try:
exec open("./dump", "r")
except IOError as e:
pass
#Resolve macros
for fu in re.findall("(?<=#define)(.*?)(?=\(\.\.\.\) *PYTHON_FUNCTION\(\))", raw, re.DOTALL):
raw = re.sub("("+fu+"\([^\.?].*?\)(?=[^\:]))", lambda m:str(eval(m.group(1))), raw)
#Save file
with open(file_path, "w+") as f:
f.write(raw)
Después de la instalación podéis hacer cosas como ésta:
Header.h:
#ifndef PRETEST
#define PRETEST
#include <Windows.h>
#include "../../kPreprocessor/kPreprocessor.h"
INCLUDE_PYSRC(.\test.py)
DEFINE_PYSRC(
def TEST():
return 12
)DEFINE_END()
#endifMain.cpp:
#pragma comment(linker, "/ENTRY:main")
#include "Header.h"
#define XOR_STR(...) PYTHON_FUNCTION()
#define MD5(...) PYTHON_FUNCTION()
#define TEST(...) PYTHON_FUNCTION()
void main(){
MessageBoxA(0, XOR_STR("karcrack", 0xFF), MD5("karcrack"), TEST( ));
}You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login:
#Glenn Maynard
def string_to_c(s, max_length = 140, unicode=False):
ret = []
# Try to split on whitespace, not in the middle of a word.
split_at_space_pos = max_length - 10
if split_at_space_pos < 10:
split_at_space_pos = None
position = 0
if unicode:
position += 1
ret.append('L')
ret.append('"')
position += 1
for c in s:
newline = False
if c == "\n":
to_add = "\\\n"
newline = True
elif ord(c) < 32 or 0x80 <= ord(c) <= 0xff:
to_add = "\\x%02x" % ord(c)
elif ord(c) > 0xff:
if not unicode:
raise ValueError, "string contains unicode character but unicode=False"
to_add = "\\u%04x" % ord(c)
elif "\\\"".find(c) != -1:
to_add = "\\%c" % c
else:
to_add = c
ret.append(to_add)
position += len(to_add)
if newline:
position = 0
if split_at_space_pos is not None and position >= split_at_space_pos and " \t".find(c) != -1:
ret.append("\\\n")
position = 0
elif position >= max_length:
ret.append("\\\n")
position = 0
ret.append('"')
return "".join(ret)
def XOR_STR(str, c):
s = ""
for x in str:
s+= chr(ord(x)^c)
return string_to_c(s)
def MD5(s):
import md5
return string_to_c(md5.new(s).hexdigest())

Hay errores en la detección de tokens ya que se hace con expresiones regulares algo chapuzas

Todavía sigo trabajando en esto, así que seguid atentos para mejoras y arreglo de errores... y una explicación más elaborada en cuanto tenga tiempo xD
Nota: No se expandirán macros originales (C/C++ es en ejemplo) en la llamada a funciones. [Debido al diseño, no será reparado]
Saludos
#72
Dudas y pedidos generales / Re:Como puedo intervenir un celular?
Mayo 10, 2013, 09:18:00 AM
Con una orden judicial.
O generando un AP falso con una antena y otro material muy caro.
O generando un AP falso con una antena y otro material muy caro.
#73
Presentaciones y cumpleaños / Re:This is Karcrack
Mayo 09, 2013, 11:24:25 AM
Gracias por el recibimiento 
Para la semana que viene ya podré estar algo más activo en teoría jaja

Para la semana que viene ya podré estar algo más activo en teoría jaja
#74
Presentaciones y cumpleaños / This is Karcrack
Mayo 08, 2013, 04:15:46 PM
Imagino que algunos ya me conoceréis pero para aquellos que no me conozcáis: Soy un estudiante de ingeniería informática de Valencia (España) con 20 años.
Me apasiona el estudio y desarrollo de malware. Programo con soltura en ASM, C[++], VB6 y Python. También lenguajes web, pero no practico en exceso. Aunque básicamente he programado en todos los lenguajes que he ido conociendo, al menos para probarlos
Vine invitado por Antrax, llevo un rato leyendo temas y creo que puede resultar una buena experiencia formar parte de la comunidad
Saludos
Me apasiona el estudio y desarrollo de malware. Programo con soltura en ASM, C[++], VB6 y Python. También lenguajes web, pero no practico en exceso. Aunque básicamente he programado en todos los lenguajes que he ido conociendo, al menos para probarlos

Vine invitado por Antrax, llevo un rato leyendo temas y creo que puede resultar una buena experiencia formar parte de la comunidad

Saludos

