Solo para los grandes Crack de Mql
Publicado: 31 May 2020 17:53
Hola a todos, me gustaria saber si existe alguna función en mql4 donde yo pueda leer el numero MAC de una computadora, me urge saberlo. De antemano muchas gracias.
¿Dudas sobre trading? Plantea tus cuestiones sobre el funcionamiento del mercado, descarga indicadores y sistemas de trading y comparte tus operaciones con otros traders.
https://www.x-trader.net/foro/
Código: Seleccionar todo
//+------------------------------------------------------------------+
//| Function..: SystemDriveSerialNumber
//| Purpose...: Retrieve the serial number of a logical drive stored in the drive's boot sector.
//| Parameters: sDrive - root directory of volume to retrieve Serial number.
//| Returns...: sNumber - drive serial number, or null string in the case of an error.
//| Example...: string sNumber=SystemDriveSerialNumber("C");
//| Thank You.: Big thank you to Stanislav Starikov of MetaQuotes www.metaquotes.net for correcting the
parameter type
//| Notes.....: Insert the following code at the top of your program in the EX4 imports section:
#import "Kernel32.dll"
bool GetVolumeInformationA(string RootPathName,
string VolumeNameBuffer, int VolumeNameSize,
int& VolumeSerialNumber[], int MaximumComponentLength,
int FileSystemFlags, string FileSystemNameBuffer,
int FileSystemNameSize);
#import
//+------------------------------------------------------------------+*/
string SystemDriveSerialNumber(string sDrive) {
int iVolumeSerialNumber[1]={0};
string sVolumeSerialNumber="";
if(GetVolumeInformationA(sDrive+":\\", " ", 15, iVolumeSerialNumber, 0, 0, " ", 15))
{
sVolumeSerialNumber=IntegerToHexString(iVolumeSerialNumber[0]);
sVolumeSerialNumber=StringConcatenate(StringSubstr(sVolumeSerialNumber,0,4), "-", StringSubstr(sVolumeSerialNumber,4));
}
return(sVolumeSerialNumber);
}
Hola, cardan783.
Gracias por responder Rafa7 pero efectivamente es para proteger mi codigo sobre eso mismo que tu acabas de decir que no se pueda compartir y solo se ejecute en el equipo de la persona a quien yo se lo doy, y pues ya logre implementar el codigo cosa que es relativamente facil claro en algunos casos de proteccion ya que existen diferentes metodos de proteccion y hasta el cifrado Base64 que es un poco mas complejo pero metiendose unos dias estudiando el cifrado ese pues puedes digo yo no se puedes aprender a implementarlo en tu codigo.Rafa7 escribió: ↑01 Jun 2020 09:05Hola, cardan783.
Si es para eso, puedes poner el código en un fichero de una carpeta compartida solo con él (de Google Drive o Dropbox, por ejemplo) y que el cuando se baje él código, elimine el fichero de la carpeta.
Otra cosa es que quieras expresamente que el código solo se pueda ejecutar en tu máquina y en la suya, para evitar que él la comparta con otros que podrían ejecutarlo. Si por ahí van los tiros, no sé que decirte, ya que no conozco el Mql.
Saludos.
B64 es una codificación, se puede decodificar fácilmente. No está pensado para proteger nada sino para disponer de texto ASCII y evitar posibles problemas si se usan, por ejemplo, protocolos de texto.cardan783 escribió: ↑02 Jun 2020 13:24Gracias por responder Rafa7 pero efectivamente es para proteger mi codigo sobre eso mismo que tu acabas de decir que no se pueda compartir y solo se ejecute en el equipo de la persona a quien yo se lo doy, y pues ya logre implementar el codigo cosa que es relativamente facil claro en algunos casos de proteccion ya que existen diferentes metodos de proteccion y hasta el cifrado Base64 que es un poco mas complejo pero metiendose unos dias estudiando el cifrado ese pues puedes digo yo no se puedes aprender a implementarlo en tu codigo.Rafa7 escribió: ↑01 Jun 2020 09:05Hola, cardan783.
Si es para eso, puedes poner el código en un fichero de una carpeta compartida solo con él (de Google Drive o Dropbox, por ejemplo) y que el cuando se baje él código, elimine el fichero de la carpeta.
Otra cosa es que quieras expresamente que el código solo se pueda ejecutar en tu máquina y en la suya, para evitar que él la comparta con otros que podrían ejecutarlo. Si por ahí van los tiros, no sé que decirte, ya que no conozco el Mql.
Saludos.
Da igual si lo cifras o no. Si cambias "if ( cuenta!= NroCuenta )" por "if ( cuenta== NroCuenta )" y recompilas haces que funcione para todas las cuentas excepto para la que quieres que funcione.Nightmare escribió: ↑20 Ago 2020 07:20 Una sencilla solucion
int cuenta = AccountNumber();
int NroCuenta = 1234567890; // aca pones el nro de cta de a quien vas ha pasar tu EA
if( IsTesting() )
Print("************* Modo Testing ***********");
else if ( cuenta!= NroCuenta )
{
Comment("************** Nro de Cuenta no permitido ***********");
Print("**************** Nro de Cuenta no permitido ***********");
ExpertRemove();
}
else
PrintFormat(" * * * Inicializacion OK * * * ");
Ideal seria un algoritmo para encriptar y desencriptar el nro de cta.
Para romper la proteccion necesita desensamblar el codigo y cambiar la instruccion JMP de la condicion de comparacion, pero ¿valdria la pena todo ese trabajo?