Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Llaves

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Llaves Responder citando

Hola Foro,

Deseo que al instalar mi aplicación pida una llave para llevar a cabo la instalación (los típicos números de serie) .

Alguien que me oriente o me indique en donde puedo encontrar información al respecto.

De antemano gracias.
Raúl
Volver arriba
Mensaje    Asunto: Responder citando

Alguien con alguna sugerencia???

Cualquier información será muy valiosa.

Raúl

P.D. Felices fiestas!!!!
Volver arriba
Mensaje    Asunto: no se yo... Responder citando

xq no miras por la API de Windows??

igual hasta aparece algo
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor
Mensaje    Asunto: Responder citando

Existen en la seccion de trucos de este foro uan funcion que te devuelve el numero de serie del disco duro

Por ahi puedes empezar
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Proteccion de Software Responder citando

Hola, la recomendacion del ing. Gabriel es valedera, yo te voy a ampliar un poco mas.

Primero: Proteger la instalacion es menos efectivo que proteger la ejecucion del programa, una de las mejores maneras es hacer que tu programa "mire su entorno" (Serial de Disco, NIC de red, numero de discos etc) con esta informacion y usando algun algoritmo, preferiblemente de tu cosecha, fabricas un numero de serie de al menos 15 caracteres luego usando otro algoritmo encriptas el serial, este resultado sera la clave de activacion.

Segundo: Ten en cuenta que los crackers pueden abrir el ejecutable con un editor hexadecimal y modificar el salto que activa el exe despues de tracearlo con un debuger, contra esto es util pero no infalible la verificacion de seguridad en varios puntos del programa, ingeniarselas para evitar comparaciones obvias entre variables (Por aqui es que empiezan a buscar) poner varias comparaciones innecesarias antes y despues de la verdadera.

Claro que tambien es un honor el que alguien se moleste en crackear tu ejecutable Smile

Si deseas alguna aclaratoria repostea por aqui.
Volver arriba
Mensaje    Asunto: Responder citando

Gracias a todos por sus sugerencias.

Y bueno para que podamos entendernos mejor entonces voy a explicar lo que pretendo hacer.

Bueno, estoy por terminar una aplicación (contable) la cual quiero comercializar, pero he pensado en agregarle "Números de serie" o " Llaves" para cuando se tenga que hacer una instalación.

Por poner un ejemplo, recuerdo que alguna vez cuando empece a programar con C++ Builder, me prestaron una versión de este paquete, pero para poder utilizarla tuve que hacer una solicitud a BORLAND para que me enviaran la llave para llevar a cabo la instalación.

La persona que me presto el CD tenía una llave la cual al tratar de utilizarla nuevamente en mi instalación a mi NO me funcionó, así es que tuve que solicitar otra.

Entonces lo que pretendo es que cada vez que se intente instalar mi aplicación, se pida una llave, y sí dicha llave ya se utilizó impedir la instalación.

Espero que con está explicación se entienda mejor lo que pretendo hacer.

Saludos, Raúl
Volver arriba
Mensaje    Asunto: Responder citando

Alguien con nuevas sugerencias
(Alfredo?)
Volver arriba
Mensaje    Asunto: Hola Responder citando

Bastante interesante tu pregunta, esperemos que alguien nos de una mano.


Saludos.......
Volver arriba
Mensaje    Asunto: Seriales y Llaves Responder citando

Hola de nuevo, no recomiendo poner la seguridad en la instalacion ya que es mas facil de romper y quien lo logre tendria un instalador gratis para siempre, es mejor ponerla en el ejecutable y verificarla varias veces durante la ejecucion (P.E. En FormShow, al insertar un registro etc.)

Los seriales del(os) discos duros se generan con un valor aleatorio cuando la(s) unidad(es) son formateadas y se obtienen asi:
//------------------------------------------------
//obtener serial del disco
DWORD volumeSN,maximum,sflags;
GetVolumeInformation("C:\\",NULL,0,&volumeSN,&maximum,&sflags,NULL,0);
String Serial = IntToHex(HIWORD(volumeSN),4)+IntToHex(LOWORD(volumeSN),4);

ShowMessage(Serial);
//---------------------------------------------------

/* Aqui ya tenemos una cadena de 8 caracteres que pueden ser numeros del 0 al 9 y letras de la A a la F y digamos que este sera nuestro serial por ahora.
Necesitamos un algoritmo que nos permita deducir la llave correspondiente a este serial en particular, vamos a usar uno muy elemental, organizamos arbritariamente los caracteres posibles de ser contenidos en Serial y la Llave sera la concatenacion del los valores que correspondan a la posicion de estos en la cadena arbitraria.*/

String Cadena ="ABCDEF0123456789";
String Llave;
for(int i=1;i<=Serial.Length();i++)
{
for(int j=1;j<=Cadena.Length();j++)
if(Cadena.SubString(j,1)==Serial.SubString(i,1))
Llave=Llave+IntToStr(j);
}
ShowMessage(Llave);
//----------------------------------------------------------

Luego bastaria comparar esta llave calculada con el valor de otra guardada por ej. en el registro del sistema y si es correcta permitir la ejecucion o en caso contrario abortarla.

Ahora esto es muy elemental y tiene un fallo intrinseco, al depender nuestro serial solo del disco duro, ya que existen aplicaciones que clonan los discos incluidos seriales, bastaria con obtener un par Serial+Llave validos y dale que te clono, creo que si vais captando la idea construiriais seriales mas complejos con datos extraidos de la pc, del usuario, etc y algoritmos mas dificiles de romper.

Bueno os dejo, el estomago cruje y debo meter los pies bajo la mesa.

[/b]
Volver arriba
Mensaje    Asunto: Responder citando

Hola Alfredo,

Voy entendiendo mejor, pero...tengo mis dudas.

Se supone que voy a distribuir mi aplicación y al hacerlo tengo que dar el número de serie que permita la instalación de dicha aplicación, cómo sucede con todos los productos que adquirmos, normalmente traen un serial o una llave.

Entonces lógicamente no podría hacer lo que me sugieres porque ¿cómo voy a saber en que maquina se instalará la aplicación para obtener los seriales del disco y crear una llave?. Sad

Saludos, Raúl
Volver arriba
Mensaje    Asunto: En el Clavo Responder citando

Has dado en el clavo, estamos en la epoca de la interactividad y debemos aprovecharla, si activaste una copia de Builder te habras dado cuenta que tuviste que visitar una pagina donde a cambio del serial te devolvian la llave para activarlo.

Una buena estrategia de ventas es que tu aplicacion corra un periodo de prueba (Demo) antes de requerir la llave, esto da tiempo a que el usuario obtenga su serial, te lo remita por algun medio (e-Mail,Telf,Correo,Web,Personal) y tu le devuelvas la llave mientras el usuario disfruta de la aplicacion.

Los productos que traen la llave junto a la instalacion son la mas facil via para asegurarse del disfrute gratuito de un amplio mercado. No se requiere de grandes conocimientos para comprar una copia legal con su clave y luego quemar el cd "al carbon-copy". Un ejemplo lo tienes con Win98 donde la proteccion es tan mala que se puede activar incluso con diferentes llaves el mismo cd. Si tienes una copia de este intenta con:
qbk9c-yrvrx-wt83t-xq49d-c83kq lo mas seguro es que la acepte Smile

Hace tiempo tengo ganas de desarrollar una aplicacion que proteja nuestro trabajo al mismo tiempo que sea comoda para usuarios y distribuidores, a ver si este año se puede....
Volver arriba
Mensaje    Asunto: Responder citando

Hola Alfredo.

Pues tus sugerencias me han abierto más la visión sobre lo que pretendo hacer, ahora solo falta ponerse a trabajar sobre algunas funciones que obtengan información sobre el entorno de trabajo donde se ejecutará mi aplicación.

Me has comentado sobre la del disco duro ¿alguna otra que puedas faciltrame y que creas que sea importante?.

Y pues empezaré a trabajar sobre el algoritmo para encriptar la información.

Saludos, Gracias
Volver arriba
Mensaje    Asunto: Responder citando

Saludos, Puedes obtener un identificador de la tarjeta de red asi:
#include <iostream>
using namespace std;
//---------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{

GUID uuid;
char mac_addr[18]; sprintf(mac_addr,"%02X%02X%02X%02X",
uuid.Data4[4],
uuid.Data4[5],uuid.Data4[6],uuid.Data4[7]);
ShowMessage(mac_addr);
}
//------------------------------------------------------
aparte del entorno fisico local, existe el entorno del cliente que compra la aplicacion, puedes por ej. poner un banner en la cabecera de los reportes con el nombre de la empresa y su numero de registro fiscal, esto obligara al usuario a suministrar datos fidedignos, luego estos datos pueden ser usados para la creacion del serial y la llave correspondiente.
Volver arriba
Mensaje    Asunto: Responder citando

Hola Alfredo,

Ahora si me has dado bastantes ideas para elaborar la llave.

Pues a ponerse a trabajar.

Gracias por tu ayuda.

Saludos, Raúl
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.