 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Raúl128 Invitado
|
Publicado: Jue 26 Dic, 2002 6:13 pm Asunto: Llaves |
|
|
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 |
|
 |
Raúl128 Invitado
|
Publicado: Sab 28 Dic, 2002 12:29 am Asunto: |
|
|
Alguien con alguna sugerencia???
Cualquier información será muy valiosa.
Raúl
P.D. Felices fiestas!!!! |
|
| Volver arriba |
|
 |
moratiel Cdt

Registrado: 25 Dic 2002Mensajes: 17Ubicación: León (España)
|
Publicado: Sab 28 Dic, 2002 1:08 am Asunto: no se yo... |
|
|
xq no miras por la API de Windows??
igual hasta aparece algo |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Sab 28 Dic, 2002 5:55 am Asunto: |
|
|
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 |
|
 |
Alfredo Invitado
|
Publicado: Sab 28 Dic, 2002 10:56 pm Asunto: Proteccion de Software |
|
|
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
Si deseas alguna aclaratoria repostea por aqui. |
|
| Volver arriba |
|
 |
Raúl128 Invitado
|
Publicado: Lun 30 Dic, 2002 12:18 am Asunto: |
|
|
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 |
|
 |
Raúl128 Invitado
|
Publicado: Mie 01 Ene, 2003 8:11 pm Asunto: |
|
|
Alguien con nuevas sugerencias
(Alfredo?) |
|
| Volver arriba |
|
 |
Render Invitado
|
Publicado: Jue 02 Ene, 2003 3:26 am Asunto: Hola |
|
|
Bastante interesante tu pregunta, esperemos que alguien nos de una mano.
Saludos....... |
|
| Volver arriba |
|
 |
Alfredo Invitado
|
Publicado: Jue 02 Ene, 2003 10:55 pm Asunto: Seriales y Llaves |
|
|
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 |
|
 |
Raúl128 Invitado
|
Publicado: Vie 03 Ene, 2003 1:57 am Asunto: |
|
|
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?.
Saludos, Raúl |
|
| Volver arriba |
|
 |
Alfredo Invitado
|
Publicado: Vie 03 Ene, 2003 10:06 pm Asunto: En el Clavo |
|
|
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
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 |
|
 |
Raúl128 Invitado
|
Publicado: Sab 04 Ene, 2003 11:28 pm Asunto: |
|
|
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 |
|
 |
Alfredo Invitado
|
Publicado: Lun 06 Ene, 2003 5:08 pm Asunto: |
|
|
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 |
|
 |
Raúl128 Invitado
|
Publicado: Lun 06 Ene, 2003 8:02 pm Asunto: |
|
|
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 |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|