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ú

Temas - z_ane_666

#1
Scripting / [PERL]script corrompe archivo
22 Junio 2013, 08:08 AM
Este script ,(que es parte de uno mas completo) lee un archivo y luego procede a almacenarlo en un archivo llamado "salida"

#!/usr/bin/perl -w
use File::Slurp;
my $file_contents = read_file($ARGV[0]);
open my $filehand, ">","salida";
print $filehand $file_contents;
close $filehand;


el problema es que el archivo final no es identico al original, se imprimen unos caracteres "0D" adicionales a lo largo del archivo salida, ¿que podria hacer?
#2
El siguiente codigo almacena cada linea de un archivo pasado como primer argumento en archivos con nombres numericos:
@echo off
setlocal enableextensions enabledelayedexpansion
set dirvar=%~d0%~p0%~n0.%~n1%~x1
mkdir "%dirvar%"
set seleccion=%1
set /A x=0
for /f "delims=" %%a in (%seleccion%) do (
echo %%a>"%dirvar%\!x!"
set /A x+=1
echo !x!
)
endlocal
pause


Pero si le paso un archivo que contenga lineas con un tamaño superior a cierta cantidad(creo que superior a 9000 o lo mismo 9kb) de caracteres el codigo deja de funcionar o no guarda esas lineas, quisiera algun consejo, que puedo hacer?  :-[ :huh:
#3
Ultimamente instale slackware y me he dado con la sorpresa que solamente envia las cookies(obviamente cuando se le solicita) a localhost mas no sucede lo mismo en los otros ordenadores que tengo conectados a la red. En resumen,parece que  setcookie() solo esta trabajando localmente ¿Como podria dar solucion a mi problema? :-(
#4
Programación C/C++ / problema con strncat
5 Noviembre 2012, 14:44 PM
Foro como estan ! tengo un problema a la hora de usar la funcion strncat, me da segmentacion faul a la hora de querer concatenar un char obtenido a partir de la transformacion de un int ascii a char, algo asi (char * )59.

En fin aca les dejo el código:

#include <stdio.h>
#include <stdlib.h>

int main()

{
char *chratexto;
chratexto =(char *)calloc( 5, sizeof(char));
strncat(chratexto,(char *)59,1);
printf("%s\n",chratexto);
return 0;
}


#5
Ahora que el sandbox es un componente "indispensable" del avast antivirus, se ha aumentado la seguridad que brinda y auque sea molesto, muchos deciden tenerlo activo.

¿Ustedes creen que sea posible bypassearlo?
#6
He hecho un pequeño codigo que le puede servir a muchos administradores de sistema, para hallar las claves olvidadas de las pcs cliente que tengan instalado el Pcweb Cliente 4.3.26.

Para usarlo obviamente tienes que estar con la terminal cliente desbloqueada! :laugh:

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>

void ayuda(char * argumento)
{
printf("\nuso %s [/clave clave_encriptada] || [/ruta ruta_en_el_registro_de_windows]\n\nEjecute el programa sin parametros para mostrar la contraseña descifrada desde la ruta por defecto (HKEY_LOCAL_MACHINE\\SOFTWARE\\IWindow\\Bootear\\Clave)\n\nOPCIONES:\n\n/clave : Debe ingresar la clave cifrada en hexadecimal, separando cada elemento con - ejemplo: /clave h4-54-12\n\n/ruta : Le permite especificar una ruta del registro para la busqueda de la clave",argumento);
exit(0);
}

char * RegQueryStringValue(HKEY hKey, char * strValueName,long TIPODATO)
{
long lResult;
char * strBuf;
unsigned long lValueType;
unsigned long lDataBufSize;
strBuf = (char *) calloc(200, sizeof(char));
if (strBuf==NULL)
   {
   printf("falta de memoria");
   RegCloseKey(hKey);
   exit(1);
   }
   lResult = RegQueryValueEx(hKey, strValueName, NULL, &lValueType, strBuf, &lDataBufSize);
   if (lResult == ERROR_SUCCESS)
       {if (lValueType == TIPODATO)
           {
            return strBuf;
           }
   else {return "";}
       }
   else {return "";}
}

char * obtenervalor(HKEY hKey, char * strPath, char * strValue, long tipodato)
{
PHKEY Ret;
char * valorllave;
long resultado;
resultado=RegOpenKey(hKey,strPath,&Ret);
if (resultado==ERROR_SUCCESS)
{
valorllave=RegQueryStringValue((HKEY)Ret,strValue,tipodato);
RegCloseKey((HKEY)Ret);
return valorllave;
}
else{
return "";}
}

char * desencriptandoclave(char * claveencriptada)
{
int semilla;
char * clavedesencriptada;
long i;
semilla=(int)claveencriptada[0];
clavedesencriptada = (char *) calloc(strlen(claveencriptada)-1+1, sizeof(char));//en realidad solo debiera pedir 9 espacios pero pido +1 para el '\0'
if (clavedesencriptada==NULL)
   {
   printf("falta de memoria");
   exit(1);
   }
for(i=0;i<strlen(claveencriptada)-1;i++)
   {
   clavedesencriptada[i]=(char *)((int)claveencriptada[i+1]-semilla-i-1);
   }
clavedesencriptada[strlen(claveencriptada)-1]='\0';
return clavedesencriptada;
}

char * volteandocadena(char * cadenaprocesar)
{
char * cadenaprocesada;
cadenaprocesada = (char *) calloc(strlen(cadenaprocesar)+1, sizeof(char));//+1 para el '\0'
if (cadenaprocesada==NULL)
   {
   printf("falta de memoria");
   exit(1);
   }
long i;
for(i=strlen(cadenaprocesar)-1;i>-1;i--)
   {
  cadenaprocesada[strlen(cadenaprocesar)-1-i]=cadenaprocesar[i];
   }

cadenaprocesada[strlen(cadenaprocesar)+1-1]='\0';
return cadenaprocesada;
}

int main(int argc,char **argv)
{
char siclave[7]="/clave";
char siruta[6]="/ruta";
char siayuda[7]="/ayuda";
char versionprogram[7]="4.3.26";
char * retorno;
if (argc==1){
retorno = obtenervalor(HKEY_CURRENT_USER,"SOFTWARE\\ARSON Group SAC\\Pcweb Cliente","Last Installed Version",REG_SZ);
   {if (strncmp(versionprogram,retorno,strlen(versionprogram))==0)
   {char * claveencriptada;
    claveencriptada = obtenervalor(HKEY_LOCAL_MACHINE,"SOFTWARE\\IWindow\\Bootear","Clave",REG_SZ);
       if(claveencriptada!="")
       {char * clavedesencriptada;
        clavedesencriptada=desencriptandoclave(claveencriptada);
        printf("%s",clavedesencriptada);
        exit(0);
       }
       else
       {printf("Error, no se pudo encontrar la clave \n");}

   exit(1);}
   else
   {printf("No esta instalado Pcweb Cliente 4.3.26");
   exit(1);}}
}
else
{
if ((strncmp(siclave,argv[1],strlen(siclave))==0)||(strncmp(siruta,argv[1],strlen(siruta))==0)||(strncmp(siayuda,argv[1],strlen(siayuda))==0))
{   if(strncmp(siayuda,argv[1],strlen(siayuda))==0){ayuda(argv[0]);}
   if (argc<3){printf("Falta parametros");exit(1);}
   if (strncmp(siclave,argv[1],strlen(siclave))==0)
   {
   char *separacion;
   char *cadenalista;
   long i=0;
   cadenalista=(char *) calloc(500,sizeof(char));
   if (cadenalista==NULL)
       {
       printf("falta de memoria");
       exit(1);
       }
   unsigned short decimal;
   separacion = strtok(argv[2],"-");
   while ((separacion != NULL))
       {
           sscanf(separacion, "%hx", &decimal);
           cadenalista[i]=(char *)decimal;
           separacion = strtok(NULL, "-");
           i++;

       }
   cadenalista=(char *) realloc ( cadenalista, i+1*sizeof(char) );//+1 para null
   cadenalista[i]='\0';
       if(i>1)
           {char * clavedesencriptada;
           clavedesencriptada=desencriptandoclave(cadenalista);
           printf("%s",clavedesencriptada);
           exit(0);
           }
           else{printf("Error, solamente ha escrito la semilla\n");ayuda(argv[0]);exit(1);}
   }
   else if(strncmp(siruta,argv[1],strlen(siruta))==0)
   {
   char * rutaregistro;
   char * raizregistro;
   HKEY trueraizregistro;
   char * nombrevalor;
   //---------------validaciones de ***** -----------------------------
   rutaregistro=strstr(volteandocadena((argv[2])),"\\");
       if(rutaregistro)
       {rutaregistro=strstr(volteandocadena(rutaregistro+1),"\\");
           if(rutaregistro)
           {rutaregistro=rutaregistro+1;}
           else{ayuda(argv[0]);exit(1);}
       }
       else{ayuda(argv[0]);exit(1);}
   //---------------validaciones de ***** -----------------------------
   raizregistro=strrchr(volteandocadena(argv[2]),'\\');
       if(raizregistro)
       {raizregistro=volteandocadena(raizregistro+1);}
       else{ayuda(argv[0]);exit(1);}
   //---------------validaciones de ***** -----------------------------
   nombrevalor=strrchr(argv[2],'\\')+1;
   strupr(raizregistro);
   {if(strncmp("HKEY_CLASSES_ROOT",raizregistro,17)==0)
   {
   trueraizregistro=HKEY_CLASSES_ROOT;
   }
   else if(strncmp("HKEY_CURRENT_USER",raizregistro,17)==0)
   {
    trueraizregistro=HKEY_CURRENT_USER;
   }
   else if(strncmp("HKEY_LOCAL_MACHINE",raizregistro,18)==0)
   {
   trueraizregistro=HKEY_LOCAL_MACHINE;
   }
   else if(strncmp("HKEY_USERS",raizregistro,10)==0)
   {
   trueraizregistro=HKEY_USERS;
   }
   else if(strncmp("HKEY_CURRENT_CONFIG",raizregistro,19)==0)
   {
    trueraizregistro=HKEY_CURRENT_CONFIG;
   }
   else{ayuda(argv[0]);exit(1);}}
   char * claveencriptada;
   claveencriptada = obtenervalor(trueraizregistro,rutaregistro,nombrevalor,REG_SZ);
       if(claveencriptada!="")
       {char * clavedesencriptada;
        clavedesencriptada=desencriptandoclave(claveencriptada);
        printf("%s",clavedesencriptada);
        exit(0);
       }
       else
       {printf("Error, no se pudo encontrar la clave \n");exit(1);}
   }
}
else
{
printf("Opcion no existe\n");
exit(1);
}
}

return 0;
}



Espero que le sea de utilidad y quisiera recibir consejos para optimizar el programa. Saludos ;)
#7
quisiera poder hacer lo siguiente, pero no puedo  :(

1-ejecutar un script

2-ese script ejecuta un programa que se muestra en l misma consola del script

3-Quisiera poder parar el programa ejecutado presionando ctrl +c , pero que eso no pare al script

tengo el sgte codigo



#!/bin/bash
echo bienvendio
airodump-ng mon0 #se va a ejecutar esto en la misma consola
echo si esto se muestra, significa que el ctrl + c no cerro el script tambien


Se ejecuta airodump-ng mon0 y en un momento dado deseo presionar ctrl +c , pero esto no tiene que cerrar el script tambien

saludos
#8
Como hacer lo que he escrito en el titulo del hilo? :huh:

por ejemplo tengo este pequeño script


#!/bin/bash
xterm -title "Mostrando bssids y sus canales" -e airodump-ng mon0
echo esto tiene que mostrarse inmediatamente despues de ejecutarse el programa y no cuando termine


quisiera que xterm se ejecute, pero que su ejecucion no pause el script, lo que busco es algo asi como el "start" del cmd de windows

#9
Programación Visual Basic / create threads en vb6
12 Diciembre 2011, 18:05 PM
me he encontrado con un ejemplo en el que se usa la api createthread
'Using the CreateThread function in Visual Basic
'is very risky! VB5 is 'kinda' stable, but VB6
'applications will probably crash when you
'use the CreateThread function.

'In a form
'Add a command button to the form
Private Sub Command1_Click()
    'KPD-Team 1999
    'URL: [url]http://www.allapi.net/[/url]
    'E-Mail: [email]KPDTeam@Allapi.net[/email]
    'After you click this button, try to move the window
    'You will see that the AsyncThread-function was executed asynchronously
    hThread = CreateThread(ByVal 0&, ByVal 0&, AddressOf AsyncThread, ByVal 0&, ByVal 0&, hThreadID)
    CloseHandle hThread
End Sub
Private Sub Form_Unload(Cancel As Integer)
    'If the thread is still running, close it
    If hThread <> 0 Then TerminateThread hThread, 0
End Sub
'In a module
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long
Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public hThread As Long, hThreadID As Long
Public Sub AsyncThread()
    'Let this thread sleep for 10 seconds
    Sleep 10000
    hThread = 0
End Sub


y bien como dice ( y es cierto) la aplicacion crashea al usar create thread

habra alguna manera de crear threads o al menos hacer una aproximacion a ello?

saludos
#10
Programación C/C++ / implementar do events en c++
12 Diciembre 2011, 18:01 PM
estoy haciendo un programa con ventana en c++ y necesito alguna manera de implementar doevents (el de vb6) en este. ¿Alguno sabe?

saludos
#11
No se si la pregunta que voy a ahcer sea tonta, pero necesito saber...

cuando un proceso ejecuta otro proceso, este ultimo es hijo del que lo ejecuta

¿hay alguna manera de evitar esto? que el ejecutado no sea hijo del que lo ejecuta (no se, tal vez un parámetro de createprocess o usar alguna funcion aparte ......)

saludos
#12
cuando un proceso ejecuta otro proceso, este ultimo es hijo del que lo ejecuta

¿hay alguna manera de evitar esto? que el ejecutado no sea hijo del que lo ejecuta (no se, tal vez un parámetro de createprocess......)

saludos
#13
es posible averiguar la url que se esta consultando de un browser cualquiera, se tiene que usar apis u otras cosas?

saludos
#14
Programación Visual Basic / intervalo entre fechas
8 Noviembre 2011, 02:36 AM
hola foro, estuve buscando en internet la manera de hacer cierta cosa dentro de un intervalo de tiempo. por ejemplo:
en el evento load poner esto

si time está entre el intervalo de 12:40:20 pm y las 08:15:10 am hacer lo siguiente (aca codigo para hacer)

pero no logre encontrar nada, alguna idea?

saludos
#15
en c++ era facil : solo me dirigia a la zona de mensajes y trabajaba con el mensaje sw_show pero en visual basic no se como poder trabajar con el evento show. lo que quiero es que se muestre un mensaje msgbox cada vez que el evento show es ejecutado

saludos
#16
Recien me estoy metiendo a sacon en la programacion en ventanas en c++ uso codeblocks y estoy en la busqueda de un ejemplo en la que haya ventanas hijas ( por si acaso no me refuero a controles), desafortunadamente no encontre buena informacion, y lo poco valioso qu encontre son ejemplos basados en dialog base(recursos,  con BEGIN -END, etc), yo quisiera ejemplos basados en frames ( lo tradicional)

¡alguno me podria ayudar?

saludos
#17
buenos dias ,he implementado un code para escribir contenido en un archivo (que ha de estar creado con el nombre ajhgk.txt y en la c:\ antes de usar el programa), realmente funciona, pero escribe caracteres extraños

Option Explicit
Const MOVEFILE_REPLACE_EXISTING = &H1
Const FILE_ATTRIBUTE_TEMPORARY = &H100
Const FILE_BEGIN = 0
Const FILE_SHARE_READ = &H1
Const FILE_SHARE_WRITE = &H2
Const CREATE_NEW = 1
Const OPEN_EXISTING = 3
Const GENERIC_READ = &H80000000
Const GENERIC_WRITE = &H40000000
Const CREATE_ALWAYS As Long = 2
Const FILE_ATTRIBUTE_ARCHIVE As Long = &H20
Const GENERAL_WRITE = 1073741824



Private Declare Function SetFilePointer Lib "kernel32.dll" (ByVal hfile _
As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh _
As Long, ByVal dwMoveMethod As Long) As Long
Private Declare Function WriteFile Lib "kernel32" (ByVal hfile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, ByVal lpOverlapped As Any) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function ReadFile Lib "kernel32" (ByVal hfile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal lpOverlapped As Any) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetFileSize Lib "kernel32" ( _
                ByVal hfile As Long, _
                lpFileSizeHigh As Long) As Long
Private Sub Command1_Click()

  Dim sSave As String, hOrgFile As Long, hNewFile As Long, bBytes() As Byte
    Dim sTemp As String, nSize As Long, Ret As Long
   
Dim charbuffer As String
charbuffer = "Anonymous!"
hNewFile = CreateFile("c:\ajhgk.txt", GENERIC_WRITE, FILE_SHARE_READ, ByVal 0&, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, 0)
WriteFile hNewFile, charbuffer, 10, Ret, ByVal 0&

CloseHandle hNewFile
End Sub


en vez de escribir Anonymous! escribe ¼NÇT:#   


espero que me ayuden

saludos
#18
PHP / alternativa a sleep
17 Mayo 2011, 00:56 AM
buenas, quisiera ver si hay una alternativa al conocido sleep de PHP ya que la funcion "duerme" el script y yo quisiera que solo se realiza el retraso sin que se interrumpa el script

Un usuario de VB6 me ayudo con un problema similar y este es el codePublic Sub Wait(ByVal vToWait As Double)
Dim vDateE As String
vDateE = GetTickCount() + vToWait
Do While vDateE > GetTickCount()
'Call WaitMessage
DoEvents
Loop
End Sub


espero ayuda
#19
bien, amigos, me dejaron una tarea en la que hay q convertir algoritmos a java, en uno de esos se usa una funcion parecida a gotoxy de c++ y bien , trate de buscar un equivalente en java y no lo encontre, asi que pense que en el foro ya han solucionado el problema, o si no se ha tocado este, quisiera al menos una funcion que determine la posicion del cursor en la consola , o al menos saber el numero de lineas actuales de la consola

saludos

PD :uso netbeans
#20
Programación General / duda con algoritmo
5 Mayo 2011, 08:58 AM
Revisando algunas paginas de programacion, me encontre con una lista extensa de pseudocodigos , bien me dije: a programar se ha dicho. :P


Pues bien, de entre esos ejercicios me encontre con uno que me esta dando unos dolores de cabeza desde mucho y es este

22.-Introducir una frase por teclado. Imprimirla cinco veces en filas
consecutivas, pero cada impresion ir desplazada cuatro columnas hacia la
derecha.

PROGRAMA frase
ENTORNO:
frase <- Espacios( 30 )
ALGORITMO:
Borrar_pantalla( )
EN 5,15 ESCRIBIR "Frase: "
EN 5,22 LEER frase
fi <- 8
co <- 15
veces <- 0
MIENTRAS veces <= 5 HACER
EN fi,co ESCRIBIR frase
veces <- veces + 1
co <- co + 4
fi <- fi + 1
FINMIENTRAS
FINPROGRAMA


EN 5,15 ESCRIBIR "Frase: "
EN 5,22 LEER frase

resalte con rojo la parte en la q tengo duda
¿se trata eso de un array o es solamente la posicion de los caracteres respecto a la pantalla?

link http://www.taringa.net/posts/ciencia-educacion/6747464/Ejercicios-resueltos-de-algoritmo.html

saludo y espero respuesta
#21
Electrónica / cambiar flash ics de pendrives
4 Febrero 2011, 03:42 AM
mi duda es la siguiente

tengo un pendrive kingston G2 de 4GB el cual me da error de escritura y aparte tengo un pendrive chino de 1gb el cual tiene la placa madre rota  pero no el flash ic

¿podria reemplazar el flash ic del pendrive kingston G2 de 4GB  por el flash ic del pendrive chino 1gb?

¿habra que configurar alguna suerte de controlador?


saludos
#22
Scripting / [batch ]no funciona codigo
8 Enero 2011, 00:40 AM
Buenas tardes

he estado probando codigos bat

no logro hacer funcionar el siguiente
@echo off
:inicio
set /p archivo=">>"
set n=A D E F G H I J K L M N O P Q R S T U V W X Y Z B C
if not defined archivo goto inicio
FOR %%F IN (%n%) DO (IF exist %%F: (FOR /R %%a %%F:\ IN (.) DO (tree %%a | find %archivo% && msg el archivo esta en %%a &goto inicio) else (msg no hay disco duros o pendrive &goto inicio)  


supestamente es un buscador de archivos, al ejecutarlo, te pide el nombre de archivo, lo pones, pero luego sale

No se esperaba %F:\ en este momento.

espero que me puedan ayudar
#23
Scripting / [batch] funcion split
3 Enero 2011, 20:47 PM
hay un codigo que implemente un tipo de split(tipo vb6)?
quisiera que separe en variables diferentes cadenas de un archivo de texto delimitadas por un - por ejemplo

saludos
#24
hola amigos, estoy desarrollando un script que una el contenido de 2 variables en una sola (concatenar el contenido de 2 variables con un espacio al medio de ambas)

Código (dos) [Seleccionar]

@ echo off
echo escriba su nombre
set /p nombre=
pause
echo escriba su apellido
set /p apellido=
echo sus nombres completos son
set /a total = %nombre% + %apellido%
echo %total%
pause
exit


pero el codigo no me funciona, solamente sirve para operaciones matematicas

espero que me puedan ayudar
#25
he desarrollado hace tiempo un filtro antipornografico para un proyecto en mi instituto, y hoy 31 de dic quisiera que este sera registrado como servicio y que sea ejecutado como system, porque no habria sentido  que un filtro antipornografico pueda ser cerrado desde el administrador de tareas

espero respuesta
#26
Scripting / [solucionado][batch]problema con ó y á
30 Diciembre 2010, 02:45 AM
estoy haciendo un script que cambia configuraciones de red, pero el cmd no acepta

netsh interface ip set address name="Conexiones inalámbricas" source=static 10.10.2.25 255.0.0.0 10.10.2.1 1
rem netsh interface ip set dns Conexiones de red inalámbricas static 80.58.0.33
rem netsh interface ip add dns name=Conexiones de red inalámbricas addr=80.58.61.254
pause





lo que aparece en la pantalla es esto


C:\>netsh interface ip set address name="Conexiones inalßmbricas" source=static
10.10.2.25 255.0.0.0 10.10.2.1 1

Interfaz especificada no válida Conexiones inalßmbricas.


C:\>rem netsh interface ip set dns Conexiones de red inalßmbricas static 80.58.0
.33

C:\>rem netsh interface ip add dns name=Conexiones de red inalßmbricas addr=80.5
8.61.254

C:\>pause
Presione una tecla para continuar . . .

el problema parece ser que los comandos solo funcionan con caracteres EEUU, no se si me explico: no aceptan tildes

¿como puedo solucionar esto?

saludos
#27
Existe alguna funcion en c++  :huh:para buscar una cadena de caracteres dentro de otra cadena de caracteres , ademas  que no sea case sensitive? Desearia tambien ejemplos 

saludos
#28
Programación C/C++ / Error en programa c++
9 Diciembre 2010, 00:12 AM

Antes que nada , buenos dias

Me baje este codigo(hecho para turbo c++ 3.00), lo compile en dicho programa y funciona bien , pero cuando lo pase a codeblocks(usa gnu gcc compiler),compilo bien, pero al ejecutar y poner un caracter de busqueda(El programa es para buscar caracteres en un archivo) la aplicacion falla y sale la ventana de que ha encontrado un problema y debe cerrarse

¿Que estaré haciendo mal? ¿Que hay que cambiar? Espero que puedan ayudarme

Codigo

#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <fcntl.h>
#include <process.h>
#include <sys\stat.h>
#include <string.h>

int buscar ( char *archivo, char *cadena );
int encontrar_ocurrencias( char *cadena, char *subcadena );

int main(void)
{
    char *archivo = "C:\\readme.TXT";
    char *cadena;

    printf("Ingrese cadena a buscar: ");
    gets(cadena);

    int resul = buscar(archivo, cadena);

    if(resul==0)
      printf("No se ha encontrado la cadena\n");
    else
      printf("Coincidencias encontradas: %d\n", resul);

    system("PAUSE");
    return 0;
}

int buscar ( char *archivo, char *cadena )
{
   char ch;
   char *texto;
   int controlador, i;

   /* Abre archivo */
   if ((controlador = open(archivo, O_RDONLY | O_BINARY, S_IWRITE |

S_IREAD)) == -1)
   {
      printf("Error al abrir archivo\n");
      exit(1);
   }

   /* Lee el archivo y va colocando el contenido en la variable: texto */
   texto[0] = '\0';
   for(i=0; !eof(controlador); i++)
   {
      read(controlador, &ch, 1);
      texto[i] = ch;
   }
   texto[i]='\0';

   /* Cierra archivo */
   close (controlador);

   return encontrar_ocurrencias(texto, cadena);
}

int encontrar_ocurrencias( char *cadena, char *subcadena )
{
   char *tmp = cadena;
   char *pdest;
   int ocur = 0, pos;
   int len = strlen(subcadena);
   while(1)
   {
      pdest = strstr( tmp, subcadena );
      if( !pdest ) break;
      pos = pdest - tmp;
      tmp += pos + len;
      ocur++;
   }
   return ocur;
}
#29
hola , estoy haciendo u programa para sacar especiales de videojuegos y este es mi codigo

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
        Const VK_forw = &H27
        Const VK_back = &H25
        Const VK_down = &H28
        Const VK_a = &H41
        Const KEYEVENTF_KEYUP = &H2
       
       
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
keybd_event VK_forw, 0, 0, 0
keybd_event VK_forw, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_back, 0, 0, 0
keybd_event VK_back, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_forw, 0, 0, 0
keybd_event VK_forw, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_down, 0, 0, 0
keybd_event VK_down, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_a, 0, 0, 0
keybd_event VK_a, 0, KEYEVENTF_KEYUP, 0
Timer1.Enabled = False

End Sub


al probar este codigo en un archivo de texto, funciona correctamente, pero al probarlo estando activo el juego no funciona

El problema que veo es que las teclas con esta api se presiona muy rapido, y es por eso que no reacciona el personaje

lo que quisiera saber es si se puede adaptar de tal manera que la tecla este presionada por al menos 1800 ms y que luego se suelte con KEYEVENTF_KEYUP

saludos

NOTA: probe con un bucle, funciona muy bien en archivos de texto, pero no en el juego
#30
Hice una aplicacion que cierra las ventanas que tienen de titulo "Google - Windows Internet Explorer" ,probé el programa en pcs con versiones anteriores de internet explorer,y si ,funciona correctamente( lo cierra sin chillar)  pero al probarlo en pcs con la version 8 ,el explorador arroja la sentencia: ¿desea cerrar todas las pestañas o la pestaña actual? y una suerte de opciones "cerrar todas las pestañas" y "cerrar la pestaña actual", lo que yo quisiera es que cerrase la ventana padre, no necesariamente las pestañas, sin necesidad de que el usuario interviniera haciendo click en "cerrar todas las pestañas"o "cerrar la pestaña actual"

Este es el codigo que pobré
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const VM_CLOSE As Long = &H10

Private Sub Command1_Click()
Dim hwnd As Long
Dim jaja As Long
hwnd = FindWindow(vbNullString, "Google - Windows Internet Explorer")
If hwnd > 0 Then
PostMessage hwnd, VM_CLOSE, ByVal 0&, ByVal 0&
End If
End Sub



intente hacerlo obteniendo el PID de las ventanas, Pero ¡sorpresa! todas las intancias padre abiertas y por abrir de IE8 comparten el mismo PID y si mato uno, mato todos :(

Espero que me ayuden(creo que el problema esta en el parametro wMSG que se le pasa a postmessaje)

saludos
#31
Ingeniería Inversa / programa raro en CD
26 Septiembre 2010, 18:53 PM
Hace tiempo me compre un libro de visual basic (Esos q son baratos y encima se lo bajan todo de internet xD), el cual me vino con un CD de 92.6mb ocupados, el cual traia un autorun raro



[autorun]
OPEN=shexe index.htm
icon=macro.ico



lo que nos indica QUE ANTES de ejecutar en index.htm inicia un programa llamado shexe.exe

adjunto el archivo sospechoso, para ver si alguien es capaz de descifrar que es lo q hace ese shexe.exe

http://www.mediafire.com/download.php?2ybxlqusxnu7bku

saludos
#32
se que se puede usar apis, pero quisiera una pequeña referencia

quisiera el codigo fuente que haga lo mencionado en el titulo

saludos
#33
en el instituto estamos programando en VB.net y el profesor nos dejo una tarea rara

Diferencia entre proyecto y solucion

alguna idea?
#34
ASM / apis de windows en debug
24 Agosto 2010, 17:49 PM
sera posible crear un programa en debug de microsoft que use apis del windows xp
si lo hay quisiera documentacion o ejemplos

saludos
#35
es posible hacer autoreplicantes que infecten exes ,se copeen a las unidades y/o se incien en cada reinicio del pc con la herramienta debug de microsoft windows?

saludos
#36
quisiera que me ayudasen en esto, hasta ahora no pude , estoy haciendo una BD en acess y quisiera crear una consulta SQl que solamente me muestre los nombres de los empleados que tengan como cargo preventista, y no se me ocurre nada :(



a lo mucho llege a esto

SELECT EMPLEADOS.id_EMPLEADOS, [APELLIDOS] & "," & [NOMBRES] FROM EMPLEADOS;

saludos
#37
Scripting / obtener solo el octeto IP en batch
14 Julio 2010, 20:39 PM
deseria un ejemplo de un bat para solo hallar el numero IP de cierta maquina, sin detalles

saludos
#38
Programación Visual Basic / no funciona shell
14 Julio 2010, 03:08 AM
he pesto el siguiente code en un click buttom

Shell "copy c:\hola.txt d:\hola.txt"

y no funciona, sale error 53 no se ha encontrado el archivo

y resulta que hola.txt esta en c:

desearia que solucionen esto usando shell , y no filecopy

saludos
#39
buenos dias señores ,espero que me puedan ayudar en este problema

tengo hechos 2 formularios . El primero llamado form1 tiene este codigo
(aclaro que tiene 2 controles: un command1  y un text1

Public doom As String
Private Sub Command1_Click()
Form1.Visible = False
Form2.Visible = True
doom = Text1.Text
End Sub

Private Sub Form_Load()
MsgBox ("bienvenido a mi sistema de fichas simple. ingrese localizacion donde se trabajara")
End Sub


y el segundo form2 tiene text1,text2,text3 y un command1 com estos codes

Private Sub Command1_Click()
Open Path & doom & ":\" & "datos.txt" For Append As #1
         Print #1, "nombre:" & Text1.Text
         Print #1, "edad:" & Text2.Text
         Print #1, "direccion:" & Text3.Text & vbNewLine & "-----------------------"
        Close #1
        MsgBox ("siguiente persona")
        Text1.Text = ""
        Text2.Text = ""
        Text3.Text = ""
End Sub


Private Sub Form_Load()

Open Path & doom & ":\" & "datos.txt" For Append As #1
         Print #1, "base de datos del dia:  " & Now & vbNewLine
         Close #1
End Sub



el problema es el que indique en el titulo. no puedo lograr que la variable doom sea usada tambien en el form2 , ne sale error 52 , el form2 esta bien programado
el problema radica emn form1

espero que me ayudemn

saludos



#40
disculpen mi ignorancia :( y  no se si estoy usando los terminso  adecuados para expresarme, pero quisiera que me ayuden en esto

declaro y creo la variable en un formulario, pero deseo que ademas este disponible para otro u otros formularios ¿deberia poner otra expresion aparte del dim?

espero que me ayuden


saludos
#41
hola amigos estoy haciendo un programa que guarda un archivo de texto llamado hola.txt en la unidad que se indica en un cuadro de text

'primero creo un control text1 con la propiedad text vacia y un command1, luego pongo esto
Private Sub Command1_Click()
Dim path As String
texxto = Text1.Text
Open path & texxto & ":\" & "hola.txt" For Append As #1
        Print #1, "hola mundo"
       Close #1
End Sub



pero no funciona sale error 52 nombre o numero de archivo incorrecto, no funciona aun poniendo entre comillas la letra de unidad en el control text1. espero que me ayuden

saludos
#42
hola amigos ,estoy haciendo un programa que evita que ciertas juegos sean ejecutados (las cierra).  ;D

El programa es simple. cada vez que el timer bat sea verdadero, empieza a cerrar
ciertos juegos usando una orden de batch (taskkill)

'primero creamos 1 timer llamado bat que tiene 8000 de intervalo
Private Sub bat_Timer()
Dim path As String
If bat = True Then
    Shell "cmd.exe /c taskkill /f /im gta-vc.exe ", 0
    Shell "cmd.exe /c taskkill /f /im NyxLauncher.exe ", 0
    Shell "cmd.exe /c taskkill /f /im Diablo II.exe ", 0
    Shell "cmd.exe /c taskkill /f /im Frozen Throne.exe ", 0
   
     End If
End Sub


Pero este codigo tiene un inconveniente. Y es que va a ver redundancia de ordenes taskkill(por consiguiente, "lageo" del sistema) . Para evitar eso desearia poner una suerte de pausas o "esperar 5555 milisegundos para pasar a la siguiente instruccion" algo asi como


'primero creamos 1 timer llamado bat que tiene 8000 de intervalo
Private Sub bat_Timer()
Dim path As String
If bat = True Then
    Shell "cmd.exe /c taskkill /f /im gta-vc.exe ", 0
    espere 5555 milisegundos para el siguiente
    Shell "cmd.exe /c taskkill /f /im NyxLauncher.exe ", 0
    espere 5555 milisegundos para el siguiente
    Shell "cmd.exe /c taskkill /f /im Diablo II.exe ", 0
    espere 5555 milisegundos para el siguiente
    Shell "cmd.exe /c taskkill /f /im Frozen Throne.exe ", 0
   
     End If
End Sub


Pero lamentablemente no se mucho de VB :huh:. espero que me ayuden

saludos
#43
quisiera que me ayuden con un source si esto es posible . Al hacer doble click sobre el contenedor , que se "extraiga" el archivo contenido en el a la unidad c:


saludos :P