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


 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el ttwitter! de elhacker.NET


  Mostrar Temas
Páginas: 1 2 3 4 5 6 7 8 [9] 10
81  Programación / PHP / Google Cloaking en: 13 Diciembre 2006, 10:20
Buenas gente, estoy escribiendo un script para hacer Cloaking en un servidor de pruebas. Y tengo varias dudas...

1) Cual es la mejor forma de obtener la IP de un visitante? actualmente uso: $_SERVER['REMOTE_ADDR'];

2) Para traducir una IP a nombre dns que función es la más correcta? actualmente uso: gethostbyaddr();

3) Que funcion me sirve para saber si una cadena de texto existe dentro de otra cadena? Por ejemplo:

$cadena = "www.php.net";
$buscar = "net";

Necesito una función que si le paso $cadena y $buscar me devuelva True.
82  Programación / Programación Visual Basic / Crear un "Clicker" en: 27 Noviembre 2006, 00:43
Hola gente:

Necesito saber si alguien conoce la API que permite enviar "clicks" del ratón. Es decir, necesito hacer una aplicación que envíe muchos clicks, lo necesito para "simular" que hay un usuario dando click derecho todo el raton sin parar.

La idea es para usarlo como "bot" en un videojuego, y para no estar yo 3 horas dando click's prefiero hacer una aplicación que los pulse por mi :P

Gracias!! :)
83  Programación / PHP / Creación de un Captcha desde 0 en: 20 Noviembre 2006, 07:20
Hola, estoy intentando crear un Captcha para integrarlo en varios proyectos. La base ya esta creada, tengo el script que me genera una imagen completamente aleatoria, mi pregunta es: ¿Como hago para que el script genere una imagen apartir de una variable aleatoria y ésta sea comprobada através de un formulario?

Os dejo el código escrito y un zip preparado:

Código:
<?php
header("Content-type: image/png");

$im = imagecreatetruecolor(200, 50);
$bg = imagecolorallocate($im, mt_rand(175,255), mt_rand(175,255), mt_rand(175,255));
imagefilledrectangle($im, 0, 0, 199, 49, $bg);

$texto = array("0","1","2","3","4","5","6","7","8","9","a","b","c","x","y","z");
$fonts = array("bauhs93.ttf","bernhc.ttf","bradhitc.ttf","castelar.ttf","comic.ttf","couri.ttf","goudysto.ttf","impact.ttf","tahoma.ttf","verdana.ttf");

$reg = 200 / 7;
$rog = 50 / 4;
$rag = 200 / 6;

for ($i = 1; $i <= 6; $i++) {

//ESCRIBE TEXTO//

$t_color = imagecolorallocate($im, mt_rand(0,100), mt_rand(0,100), mt_rand(0,100));
imagettftext($im, mt_rand(20,30), mt_rand(-20,20), mt_rand(($reg * $i)-3,($reg * $i)+3)-10, mt_rand(30,40), $t_color, $fonts[mt_rand(0,9)], $texto[mt_rand(0,15)]);
}

for ($i = 1; $i <= 3; $i++) {

//LINEAS HORIZONTALES//

$hl_color = imagecolorallocate($im, mt_rand(150,255), mt_rand(150,255), mt_rand(150,255));

$var = mt_rand(-5,5);

imageline($im,0,$rog * $i,200,$rog * $i + $var,$hl_color);

}

for ($i = 1; $i <= 5; $i++) {

//LINEAS VERTICALES//

$hl_color = imagecolorallocate($im, mt_rand(150,255), mt_rand(150,255), mt_rand(150,255));

$var = mt_rand(-3,3);

imageline($im,$rag * $i,0,$rag * $i + $var,50,$hl_color);

}


for ($i = 1; $i <= 50; $i++) {

//CRUCES//

$tmp = mt_rand(1,50);

$color1 = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
$color2 = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
$color3 = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
$color4 = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
$color5 = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
$color6 = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
$color7 = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
$color8 = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
$color9 = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));

imagesetpixel($im,$i*4,$tmp,$color1);
imagesetpixel($im,$i*4+1,$tmp+1,$color2);
imagesetpixel($im,$i*4+2,$tmp+2,$color3);
imagesetpixel($im,$i*4+1,$tmp-1,$color4);
imagesetpixel($im,$i*4+2,$tmp-2,$color5);
imagesetpixel($im,$i*4-1,$tmp+1,$color6);
imagesetpixel($im,$i*4-2,$tmp+2,$color7);
imagesetpixel($im,$i*4-1,$tmp-1,$color8);
imagesetpixel($im,$i*4-2,$tmp-2,$color9);
}

$borde = imagecolorallocate($im, mt_rand(0,150), mt_rand(0,150), mt_rand(0,150));
imagerectangle($im,0,0,199,49,$borde);
imagerectangle($im,1,1,198,48,$borde);
imagepng($im);
?>

Aprobecho tambien para preguntar si las imagenes generadas son faciles o dificiles para ser interpretadas por un programa.

Se que hay cosas por mejorar:

1) Meter un config.php como include para poner variables globales
2) Hacer una matriz de colores para no usar tanto imagecolorallocate
3) Mejoras en general
84  Programación / PHP / Función Header: Autenticación en: 8 Noviembre 2006, 21:13
Muy buenas, estreno el foro con esta dudilla que tengo. Quiero hacer un webapp para administrar servidores, con una base de datos simple (en txt mismo, no necesito sql ni nada). El programa es así de simple:

Yo agrego IP's al txt, y el webapp hace la función fsockopen(); para comprobar si conecta un puerto. Si me conecta lo marco como ONLINE y si no conecta lo marco como OFFLINE. De esta manera se despliega un menú con opciones para administrarlo por Terminal Server, Telnet, etc...

Esto ya está hecho y funciona de coña. Ahora solo quiero añadir usuarios y passwords para que cada user tenga su TXT con sus IP's agregadas. Para ello uso el siguiente script:

Código:
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="Administrador de Servidores"');
header('HTTP/1.0 401 Unauthorized');
echo 'Please, insert username and password';
exit;
} else {
//resto del código autenticado
//crear sesion
//meter cookie
}
?>

Esto me funciona de coña, pero en IE7 aparece un mensaje de advertencia diciendo que esos datos se enviarán de una forma no segura, etc etc etc. Se que la función Header admite más "WWW-Authenticate", alguien los conoce todos?

Gracias!!
85  Programación / Programación Visual Basic / BCP: Best Cactus Programmer en: 22 Octubre 2006, 18:35
Hola gente!

Aqui presento el BCP (Best Cactus Programmer). Presento este concurso para animar a la gente que programe sencillas funciones que cumplan unos requisitos y objetivos claros. Los ganadores seleccionados serán  añadidos como "Colaboradores" en la ventana de "About" y en el "Leame" del nuevo Cactus Joiner, añadiendo su nick, mail y pagina web como motivo de agradecimiento.

Para ello voy a formular a lo largo de esta semana unas cuantas preguntas sobre programación. El primer usuario que responda mi problema correctamente se añadirá su código en el cactus y pondré su nick en los creditos.



Primera pregunta:

Tengo una variable con una ruta completa de un archivo, necesito sacar el nombre del archivo completo y su extensión. El nombre del archivo no tiene una longitud estática. Y la estensión del archivo suele ser de 3 carácteres, aunque podría tener más o menos carácteres. Pido una sencilla función con un solo parámetro de entrada (la ruta completa del archivo) y 2 variables de salida: El nombre del archivo y su extensión.

TERMINADO: Hendrix y WarGhost
FUNCIÓN:

Código:
Public Function ExtraerCadena(cadena As String, l As Long) As String
Dim FullName As String
FullName = Mid(cadena, InStrRev(cadena, "\") + 1)
Select Case l
Case 1
ExtraerCadena = Mid(FullName, 1, InStrRev(FullName, ".") - 1)
Case 2
ExtraerCadena = Mid(FullName, InStrRev(FullName, ".") + 1)
Case 3
ExtraerCadena = FullName
End Select
End Function

Citar
1 = Devuelve el nombre
2 = Devuelve la extesion
3 = Devuelve el FullName



Segunda pregunta:

Necesito una función para cifrar programas. No se puede usar la función XOR ya que nos puede aparecer el carácter Chr(0) (fin de cadena).

1) La función no puede ser muy extensa y no tiene que consumir muchos recursos.
2) Aparte tiene que ser recursiva (que sirva tanto para cifrar/descifrar opcional)
3) Si ciframos un virus con esa función, los AV no tienen que detectarlo

TERMINADO: Hendrix
FUNCIÓN:

Código:
Public Function crypt(cadena As String) As String
crypt = StrReverse(cadena)
End Function



Tercera pregunta:

Necesito una función (o varias) que me devuelvan el nombre completo y su extensión del propio programa que estamos ejecutando. Por ejemplo: Si el programa se llama 'hola.exe' que devuelva 'hola.exe' si se llama 'adios.bat' que devuelva 'adios.bat'. La variable App.EXEName solo devuelve el nombre del ejecutable, pero no su extensión.

TERMINADO: Lympex[/b]
FUNCION:[/b]

Código:
Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long

Private Sub Form_Load()
Dim nombre As String
nombre = String$(255, Chr$(0))

GetModuleFileName 0, nombre, Len(nombre)
MsgBox nombre
End Sub
86  Programación / Programación Visual Basic / Creando controles en tiempo de ejecución en: 1 Septiembre 2006, 12:34
En algunos casos hemos querido crear un nuevo control cuando ya hemos terminado nuestra aplicación. Supongamos un ejemplo que tenemos un formulario con 2 cajas de texto, pero según el usuario que lo ejecute se necesitarán más cajas de texto. Este efecto se llama: "Cargar controles en tiempo de ejecución". Veamos un ejemplo práctico:

1) Empezamos un proyecto en VB6 'EXE Estándar'

2) En nuestro formulario insertamos un cuadro de texto y lo llamamos 'Text'. Insertamos un CommandButton normal.


3) Establecemos la propiedad 'Index' al valor 0


4) En el evento Command1_Click() escribimos el siguiente código:
Código:
   For i = 1 To 5
        Load Text(i)
        Text(i).Visible = True
        Text(i).Top = Text(i - 1).Top + Text(i).Height
    Next

Este código se encarga de cargar 5 nuevos controles, hay que establecer siempre el Visible = True y cambiar su posición en el formulario.

5) Escribimos el siguiente código en el evento Text_Click(Index As Integer) de la caja de texto:

Código:
    MsgBox "Hola, soy la caja " & Index

6) Insertamos un nuevo botón 'Command2' y escribimos el siguiente código en el evento Click():

Código:
    MsgBox "Hay " & Text.Count & " cajas de texto"


Ejecutamos el programa y pulsamos el segundo botón, nos dirá que hay solo una caja de texto. Pulsamos el primer botón para cargar los nuevos controles en tiempo de ejecución y pulsamos de nuevo el segundo botón, nos dirá que hay 6 cajas de texto.

Si hacemos click en cada caja de texto nos saldrá un mensaje indicando que caja se está ejecutando.

Para que demonios sirve esto?
Yo lo uso sobretodo para crear una aplicación con multiconexión, (un troyano por ejemplo). Si queremos que el server.exe de nuestro troyano acepte más de 1 conexión simultanea (para controlar a la victima desde 4 ordenadores distintos a la vez, por ejemplo) necesitaremos un módulo que vaya cargando nuevos Winsock en tiempo de ejecución y los vaya dejando a la escucha en puertos diferentes, asi conseguireis un troyano con conexiones 'casi' infinitas.
87  Media / Juegos y Consolas / Pocket Tanks (con todas sus expansiones) en: 1 Agosto 2006, 03:11
Hola gente!

Supongo que conocereis el antiguo juego "Tanks", donde 2 jugadores tenian que disparar sus tanques midiendo el angulo del tiro y la fuerza, calculando tambien factores como el viento.

Bien, este antiguo juego ha sufrido muchisimas evoluciones y una de ellas es "Pocket Tanks". Me lo he descargado, asi como todas las ampliaciones de armas que existen por el momento y solo decir que es una gozada. En total son 145 armas distintas y muy divertidas, con distintos efectos, daños, potencias, etc. Podeis ver imagenes del juego en su web oficial asi como las armas que encontrareis:

http://www.blitwise.com/ptanks.html
http://www.blitwise.com/ptanksdepot.html

Yo he recopilado todos los packs (los gratuitos y los de pago) y he hecho un zip para que los probeis. Seguro que os gustará el juego ;)


Para instalar el juego completo

1) Descargar el zip desde aqui: DOWNLOAD PTANKS
2) Descomprimir los archivos en una carpeta
3) Instalar primero: "Pocket Tanks Deluxe.exe"
4) Instalar luego TODOS los demas packs: Ambush, Power, Fire, Color, Metero, Flame, etc...
5) Instalar tambien: ptfireworks100.exe y ptgravity.exe (son los ultimos packs)
6) A jugar!! xD

Seguro que el juego no os dejara indiferente. Lo que mas me gusta son la cantidad de armas que trae, todas distintas y divertidas ;)
88  Programación / Programación Visual Basic / Escanear nuestros proyectos en: 1 Agosto 2006, 00:51
Hace un tiempo un usuario de este foro ideo un programa que buscaba una string en el interior de un programa compilado, para ver si era un virus o no. La idea me pareció muy interesante, asi que me he decidido en ampliar la base de datos del programa para que detecte más archivos malicioso.

Entre otras funciones, es capaz de descubrir que aplicaciones usan la libreria MSWINSCK.OCX (como los troyanos) o la API: DownloadToFileA (como los gusanos o webdownloaders).

Aqui la lista de string:

"gusano"
"worm"
"virus"
"virii"
"troyano"
"troyano"
"troyan"
"trojan"
"Software\Microsoft\Windows\CurrentVersion\Run"
"WScript.Shell"
"Scripting.FileSystemObject"
"HKEY_CLASSES_ROOT\exefile\shell\open\command"
"drivers\etc\hosts"
"GetSpecialFolder"
"infect"
"Winsock"
"MSWINSCK.OCX"
"URLDownloadToFileA"
"keylog"
"nuke"

Se puede burlar facilmente este scanner con una simple encriptacion de strings.

(El codigo fuente lo encontrareis en el interior del zip, más info en: http://foro.elhacker.net/index.php/topic,133982.0.html)
89  Programación / Programación Visual Basic / Editar el icono de un ejecutable ya compilado en: 31 Julio 2006, 16:21
Buenas gente, estoy delante un pequeño problema donde no encuentro solución:

Necesito la forma de editar el icono de un ejecutable ya compilado. Lo necesito para implementarlo en mi proyecto Cactus Joiner.

En realidad este punto ya lo tengo controlado y el proyecto es capaz de editar el icono del ejecutable, pero solo me edita el icono de 32x32, lo que necesito es que me edite tanto el icono 32x32 como el 16x16

Os voy a dejar el código que utilizo para editar el icono de 32x32 a ver si entre todos podemos mejorarlo y ampliarlo al de 16x16. Por contra, si alquien posee algun codigo, api, web o articulo que pueda ayudarme le agradeciria que lo posteara aqui, muchas gracias.

Saludos!!
90  Programación / Programación Visual Basic / 'Bloquear' el ratón en: 29 Julio 2006, 01:42
Jugando un poco con la API de ClipCursor se pueden retringir la zona por donde el mouse puede desplazarse. Crear un nuevo proyecto, quitar el Form1.frm y añadir un módulo (Module1.bas):

Código:
Private Declare Function ClipCursor Lib "user32" (zone As RECT) As Boolean
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Sub main()
    Dim zone As RECT
   
    zone.Left = (Screen.Width / 2) / Screen.TwipsPerPixelX
    zone.Top = (Screen.Height / 2) / Screen.TwipsPerPixelY
    zone.Right = ((Screen.Width / 2) + 100) / Screen.TwipsPerPixelY
    zone.Bottom = ((Screen.Height / 2) + 100) / Screen.TwipsPerPixelY
   
    a = ClipCursor(zone)
End Sub

Este código bloquea el ratón en el centro de la pantalla y lo deja mover unos pocos píxeles. Si se pulsa Ctrl+Alt+Supr o la tecla de Windows el ClipCursor desaparece. Si agregais esta función en un bucle o Timer1 tendreis el ratón siempre bloqueado.


Otra manera más graciosa es con la API: GetCursorPos y SetCursorPos. Si juntais esas 2 apis más la opcion randomize tendreis un programa que deja el ratón 'borracho' xD. Crear un nuevo proyecto, solo dejar el Form1.frm, añadir un Timer1 con el interval = 100:

Código:
Private Type POINTAPI
 X As Long
 Y As Long
End Type

Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Private Sub Timer1_Timer()
    Dim pnt As POINTAPI
    GetCursorPos pnt
    Randomize
    tmp = Int(Rnd * 4) + 1
    If tmp = 1 Then
        curx = pnt.X + Int(Rnd * 40)
        cury = pnt.Y + Int(Rnd * 40)
    ElseIf tmp = 2 Then
        curx = pnt.X - Int(Rnd * 40)
        cury = pnt.Y - Int(Rnd * 40)
    ElseIf tmp = 3 Then
        curx = pnt.X + Int(Rnd * 40)
        cury = pnt.Y - Int(Rnd * 40)
    ElseIf tmp = 4 Then
        curx = pnt.X - Int(Rnd * 40)
        cury = pnt.Y + Int(Rnd * 40)
    End If
    SetCursorPos curx, cury
End Sub
Páginas: 1 2 3 4 5 6 7 8 [9] 10
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines