Página 3 de 4
Enviado: 06 Set 2007 14:53
por sygecom
carlos_dornelas escreveu:Pois é onde eu parei ....tenho meus sistemas autenticando por Internet via Mysql....mas para os que não tem é que o bixo pega...a melhor solução até agora é a do Marcelo(CLIPPER) ...
Qual seria essa solução?
Antonio Carlos
Entre contato com o Marcelo que ele te passa !!!
https://pctoledo.org/forum/profil ... file&u=322
Abraços
Leonardo Machado
Enviado: 06 Set 2007 14:57
por Maligno
Não seria mais prático descrever qual é esse sistema de proteção? Assim todos poderiam aproveitar, ao invés de mandar todo mundo falar com o Marcelo.
Enviado: 06 Set 2007 15:11
por sygecom
O proprio não quiz divulgar aqui...vou respeitar a vontade dele !!!..acredito por se tratar de segurança do sistema...isso até mesmo não seria bom divulgar...mas a idéai é mais ou menos gerar um numero randomico que se faz autentição por outro numero fixo...e outras atribuições em arquivos !!
Enviado: 06 Set 2007 15:23
por Maligno
Se ele assim pediu, tudo bem. Vamos respeitar. Mas acho uma tremenda bobagem. Até parece que os clientes estarão à espreita no fórum pra poder aprender a desbloquear a segurança dele.
Mas, de qualquer forma, é mais um sistema que não é 100%, assim como os demais. É como eu disse, a proteção é fraca quando a paranóia é forte. Mas a proteção passa a ser forte quando o conhecimento do usuário é fraco.
Em vista disso, acho que o problema principal não é tanto com relação à segurança em si, mas ao incômodo (e custo) que ela poderá proporcionar ao programador. Por isso que eu acho uma bobagem guardar segredo quanto a esta ou àquela técnica.
Enviado: 06 Set 2007 16:28
por sygecom
Maligno, se o seu cliente não tiver internet...como ele faz para liberar a segurança do seu sistema ? ou ele não pode ser seu cliente ?....alguma alternativa ...pq toh parado em tudo isso...tenho clientes no interior do estado que não tem internet...e não posso ficar indo lá a todo momento !!!
Enviado: 06 Set 2007 16:37
por Maligno
Maligno, se o seu cliente não tiver internet...como ele faz para liberar a segurança do seu sistema ? ou ele não pode ser seu cliente ?
Segunda alternativa.

Enviado: 06 Set 2007 16:46
por diogenes_varela
tenho clientes no interior do estado que não tem internet...
Eu usava um controle que usava disquete. Além da fragilidade da mídia, os computadores atuais aboliram esse famigerado periférico, portanto ficou meio inviável. Mas era muito bom, porque podia gravar muitas informações.
Podia fazer reinstalação, desde q na mesma máquina. Se alguém fuçasse já era...
O problema era a troca de HD.
No seu caso você pode criar uma numeração, baseada em várias informações, como serial do HD e algum outro número da placa-mãe, junta com o CPF do cara, só que o cliente deverá anotá-la. Se houver algum problema de não poder acessar o conteúdo do disco, ele te passa e você refaz a numeração em cima do que ele te passou.
Pode ser q funcione, porque acho difícil queimar o HD, a placa-mãe e o CPF dele, tudo de uma vez só...
Enviado: 06 Set 2007 17:09
por Maligno
Pode-se criar um esquema semelhante ao da Microsoft, em que pode-se trocar até uma certa quantidade de hardware sem prejuízo para a licença concedida.
Enviado: 10 Set 2007 14:18
por TerraSoftware
Caros colegas...
Voltando ao tema inicial, observei que usando a função em C disponibilizada pelo Sygecom o retorno na maioria das maquinas é o mesmo da função VolSerial() do xHarbour. Mas em alguns casos o retorno é diferente. Em outros poucos casos o número retornado é negativo. Achei muito estranho, pois se a formatação gera um número hexadecimal, seria possível transformar este número em um número decimal negativo?? E outra coisa: o principio de obtenção do serial do HD não é o mesmo usado pela função VolSerial() do xHarbour ??
Enviado: 10 Set 2007 14:34
por Maligno
se a formatação gera um número hexadecimal, seria possível transformar este número em um número decimal negativo?
Claro. Dependeria só da base. Se o bit mais à esquerda for 1, será negativo. Mas nem é esse o caso. Se é um número de identificação, não há por quê conertê-lo pra decimal. Deveria ser usado
in natura. Aliás, a função que o Leonardo postou deveria devolver o número como
char e não como
long. Daí a diferença. Inclusive, a função em C armazena temporariamente o número numa variável do tipo
long sem sinal. Mas não adianta. Como o XHarbour não sabe que você quer converter o valor para
unsigned, ao executar a função de retorno
hb-retnl, ele converte com o sinal. Daí alguns números acabam chegando negativos.
Na função em alto nível, note:
Código: Selecionar todos
vhdserial := HdGetSerial(p_hddrive)
vhdserial := IIF(VALTYPE(vhdserial) == 'N',ALLTRIM(STR(vhdserial)),vhdserial) //hb_NumToHex(vhdserial)
vhdserial := SUBSTR(vhdserial,1,4) + SUBSTR(vhdserial,5,4)
O IIF() é totalmente desnecessário. A função C sempre retornará um valor do tipo numérico. Ao "converter" para caractere com STR(), ele está supondo que vai obter de volta o hexa. Errado. Então ocorrem as discrepâncias na "montagem" da ID em hexa. Mas como não é hexa, dá tudo errado. Acho que ele esqueceu de remover o comentário da rotina de conversão hb_NumToHex().
Enviado: 10 Set 2007 15:38
por TerraSoftware
Exato.
Ter uma função para tratar o retorno da HdGetSerial() é completamente desnecessário, pois ela sempre retorna um número. Se ao gravar ou comparar for necessário string, basta transforma-la no ato. Maligno esta com a razão.
Mas ainda tenho uma dúvida: por que em algumas maquinas o número obtido é diferente da função VolSerial do xharbour??
Enviado: 10 Set 2007 15:45
por Maligno
Mas ainda tenho uma dúvida: por que em algumas maquinas o número obtido é diferente da função VolSerial do xharbour?
Imagino que a função do XHarbour deve estar retornando o número corretamente, em string, representando o hexa da série do volume. Mas note que a função do Leonardo converte para char um número decimal. Em seguida, ele "monta" o que supostamente seria um hexa. Mas não é. Daí a confusão. Aliás, repare também que a função dele sempre retornará uma string sem letra alguma. Apenas dígitos numéricos. Não é isso?
Enviado: 10 Set 2007 18:41
por sygecom
TerraSoftware, vou analisar a possibilidade de usar a função do Maligno ler o numero de fabrica no xharbour....assim que der coloco na sessão xharbour...
Abraços
Leonardo Machado
Enviado: 10 Set 2007 22:25
por Maligno
É só montar a interface do XHarbour. Não tem mistério nenhum. Mas tem que conhecer.
Se bem que, conforme eu disse antes, vou incluir na WAPI a informação de número de série de volume. É só aguardar mais alguns dias, pois estou meio sem tempo agora. A interfacer será a mais simples possível. Algo como GetVolSer("C:").
Enviado: 11 Set 2007 16:07
por carlos_dornelas
Maligno,
A configuração de montagem dos HDs pode estar causando algum problema. Execute o HDI.EXE diretamente e me diga qual é a mensagem de erro que ele retorna. Assim eu posso identificar o ponto do programa C em que o erro ocorre. A mensagem que você me passou é do PRG.
Executei o hdi.exe e a mensagem é a seguinte:
HDinfo v1.0
Recuperacao de informacoes de Hard Disks IDE
(c) 05/2003, Paulo A. Buzinello
paulo@buzinello.com
Londrina/PR
--------------------------------------------
Erro na abertura do dispositivo S.M.A.R.T.