Appmethod es una versión de C++ Builder y Delphi enfocada al desarrollo multiplataformas que no es compatible con las versiones de delphi anteriores a XE2 ya que todas las aplicaciones programables utilizan el framework "FireMonkey".
¿Que es Firemonkey?
Firemonkey es un Framework especializado para multiplataformas que utiliza librerías que le permiten al código escrito y diseñado en él, ser compilado para diversas plataformas (Windows, MacOS, Android y IOS) en código nativo sin utilizar máquinas virtuales.
¿Cúal es la diferencia entre AppMethod y RAD Studio?
Rad Studio incluye muchas mas opciones para el desarrollador que AppMethod, AppMethod es recomendado para el programador cuyo objetivo sea las aplicaciones pequeñas
Thursday, March 13, 2014
Wednesday, March 12, 2014
Como hacer update de una aplicación en windows en general
Una opción al problema de actualizar el programa que desarrollamos es utilizar una plataforma de creación de instalador llamada Innosetup http://www.jrsoftware.org/isinfo.php
Innosetup es gratuita, soporta todas las versiones de windows y aún mejor su código fuente esta disponible en Delphi.
Esta solución es válida para todos aquellos que no deseen programar la suya propia o deseen algo completo en poco tiempo.
Innosetup es gratuita, soporta todas las versiones de windows y aún mejor su código fuente esta disponible en Delphi.
Esta solución es válida para todos aquellos que no deseen programar la suya propia o deseen algo completo en poco tiempo.
Tuesday, March 11, 2014
Delphi y Bluetooth
Un muy buen ejemplo de una aplicación Bluetooth con Delphi es ésta aplicación creada por
Björn Hansen
https://www.youtube.com/watch?v=vesPd5WvykA
Utiliza Bluetooth para conectarse a un sistema de iluminación e ilustra las facilidades de Delphi para conectarse a dispositivos Bluetooth
Björn Hansen
https://www.youtube.com/watch?v=vesPd5WvykA
Utiliza Bluetooth para conectarse a un sistema de iluminación e ilustra las facilidades de Delphi para conectarse a dispositivos Bluetooth
Como definir código para diferentes plataformas
Otra pregunta muy popular ha sido el ¿como utilizo una parte de código solamente para
un plataforma en Delphi?
Muy sencillo:
utilizando el condicional $ifdef como este ejemplo:
un plataforma en Delphi?
Muy sencillo:
utilizando el condicional $ifdef como este ejemplo:
{$DEFINE DEBUG} {$IFDEF Android} Writeln('Código para android.');
// Este código se ejecuta si la plataforma es android. {$ELSE} Writeln('Codigo para cualquier otra plataforma.');
// Este código se ejecuta si la plataforma no es android. {$ENDIF}
De ésta manera tenemos código opcional para las diferentes opciones
de plataformas que tengamos y más puesto que podemos discriminar entre
diferentes procesadores para código optimizado
Pueden encontrar el cuadro completo de opciones aca:
http://docwiki.embarcadero.com/RADStudio/XE5/en/Conditional_compilation_%28Delphi%29
Friday, March 7, 2014
Como actualizar nuestro programa en Delphi automáticamente
Ayer me llegó ésta pregunta y en el momento me pregunté si Embarcadero tenía un componente para hacerlo automágicamente, la respuesta es: nosotros tenemos que programarla.
Pero lo bueno es que hay varias técnicas para hacerlo y existe una lógica para que deba ser programado por nosotros los desarrolladores, cuando el mismo código fuente funciona para plataformas autoactualizables como las móviles, hacer un componente de éste tipo es redundante.
Las técnicas dependen del estilo de programación que utilicemos, por ejemplo si tenemos un solo programa ejecutable ejemplo: un sólo archivo ".exe" debemos pensar en crear un pequeño programa de tipo "loader" que sea el que se ejecute previamente, revise la versión en nuestro sitio y sobrescriba el archivo principal.
Si utilizamos archivos .dll y nuestro programa está bien diseñado como para que las actualizaciones solo necesiten reescribir el dll, sólo necesitaríamos escribir la rutina en nuestra aplicación principal.
Aqui adjunto algunos ejemplos de rutinas que pueden ser utilizadas:
Este algoritmo reescribe nuestro programa a un .bak para poder descargar una nueva versión
Aqui una muestra de código para ejecutar ésta idea
Pero lo bueno es que hay varias técnicas para hacerlo y existe una lógica para que deba ser programado por nosotros los desarrolladores, cuando el mismo código fuente funciona para plataformas autoactualizables como las móviles, hacer un componente de éste tipo es redundante.
Las técnicas dependen del estilo de programación que utilicemos, por ejemplo si tenemos un solo programa ejecutable ejemplo: un sólo archivo ".exe" debemos pensar en crear un pequeño programa de tipo "loader" que sea el que se ejecute previamente, revise la versión en nuestro sitio y sobrescriba el archivo principal.
Si utilizamos archivos .dll y nuestro programa está bien diseñado como para que las actualizaciones solo necesiten reescribir el dll, sólo necesitaríamos escribir la rutina en nuestra aplicación principal.
Aqui adjunto algunos ejemplos de rutinas que pueden ser utilizadas:
Este algoritmo reescribe nuestro programa a un .bak para poder descargar una nueva versión
EXE:=ParamStr(0); BAK:=ChangeFileExt(EXE,'.BAK'); IF FileExists(BAK) THEN DeleteFile(BAK); <If Update Available and ready for download> RenameFile(EXE,BAK); <Save downloaded file as EXE> <Execute EXE> ExitProcess(0)<End>
Aqui una muestra de código para ejecutar ésta idea
If strtoint(versionweb) > strtoint(versionlocal) Then begin Showmessage('Existe una nueva actualizacion disponible...'); Data := TMemoryStream.Create; IdHTTP2.Get('http://servidor.com/prog.exe',Data); Data.SaveToFile('prog.e_e'); data.Free; content := 'DIM WshShell, resultado'#10#13'Set WshShell = WScript.CreateObject ("WScript.Shell")'#10#13+ 'resultado = Msgbox("Se va a realizar una actualizacion al tarificador...",64,"AutoUpdater")'#10#13+ 'WshShell.Run "%windir%\System32\cmd.exe /C del /Q prog.exe ",0,true'#10#13+ 'WshShell.Run "%windir%\System32\cmd.exe /C move prog.e_e prog.exe",0,true'#10#13+ 'resultado = Msgbox("Se realizo proceso de actualizacion.",64,"AutoUpdater")'#10#13+ 'WshShell.Run "prog.exe"'#10#13+ 'WshShell.Run "%windir%\System32\cmd.exe /C del /Q update.vbs",0,true'#10#13+ 'WScript.Quit()'; Stream := TFileStream.Create('update.vbs', fmCreate); Stream.WriteBuffer(Pointer(content)^, Length(content)); Stream.Free; ShellExecute(Form1.Handle,nil,PChar('update.vbs'),'','',SW_SHOWNORMAL); // WinExec ('', 0); Application.ShowMainForm := False; Application.Terminate; end;
Consultor en informática e Instructor, certificado en Seguridad Informática, Graduado en la Universidad Latina de Costa Rica con más de 10 años de experiencia en diversas áreas de cultura organizacional en empresas multinacionales.
Wednesday, March 5, 2014
Criptomonedas, Moneda del Futuro?
¿Que es una criptomoneda?
Mucho
se ha hablado de las criptomonedas, cosas buenas y malas, pero lo cierto es que
llenan una necesidad de la sociedad moderna.
Existen
muchas criptomonedas, aunque la más famosa y valiosa es sin lugar a
dudas el bitcoin, existen criptomonedas privadas ligadas a empresas de
transferencia de dinero y existen criptomonedas públicas, se puede ver una
lista completa en http://www.coinwarz.com/cryptocurrency, las cuales son
utilizadas en diversos sitios como opciones al bitcoin.
¿Cómo se determina el valor de una criptomoneda?
La
criptomoneda es un certificado de seguridad con un número de "dueño"
que por acuerdo general tiene un valor flotante, su comportamiento es muy parecido
a un título negociable o las acciones de una compañía, su valor crece o decrece
de acuerdo a varios factores como:
- demanda:
como todo bien de mercado entre más personas la compren mayor será su
valor
- confianza:
como cualquier título valor, cuando alguna empresa que se dedica a la
comercialización de criptomonedas sufre un robo o pérdidas, la
criptomoneda pierde valor ante el público.
- aceptación:
toda moneda es tan valiosa como su capacidad de ser convertida es
productos, servicios o en otro tipo de moneda.
¿Qué
necesito para tener una billetera de criptomonedas?
La
evolución a criptomoneda exige de las personas una nueva forma de actuar con
respecto a la seguridad de su dinero, necesitan informarse sobre las llaves
públicas y privadas que rigen la seguridad de sus cuentas, por ejemplo, muchas
personas utilizan la billetera de criptomoneda en el celular, pero si guardan
las llaves privadas en el mismo teléfono existen maneras de copiarlas y obtener
acceso a su billetera.
Para
explicarme mejor, la billetera de criptomoneda es una larga línea de caracteres
que lo identifica a usted, y es generada y registrada por el programa con el
que decida guardar sus criptomonedas, el acceso a su billetera se da en dos
partes, para depositar y saber que existe, se envía lo que se llama una llave
pública que identifica su cuenta, y para hacer cambios y accesar los
fondos se necesita un acceso privilegiado que se escribe en un archivo llamado llave
privada, el que tenga una copia de su llave privada tiene acceso a
su billetera.
¿Quién controla los movimientos de dinero?
La
respuesta a ésta pregunta es interesante, todos los movimientos de dinero son
públicos, existe un archivo que crece y es mantenido por las computadoras que específicamente
se dedican a validar éstos movimientos.
Existe
un proceso que es vital para las criptomonedas, el "mineo" o
"mining", éste proceso significa utilizar los recursos de
procesamiento de la computadora para validar una cadena de transacciones, el
premio por utilizar la computadora para éste proceso es un paquete de
criptomonedas nuevas en nuestra cuenta.
En
pocas palabras todas las computadoras dedicadas al "mining" controlan
los movimientos de su cuenta, haciendo el proceso de hackeo difícil si no
imposible, el diseño del proceso de mineo hace muy difícil el falsificar una
transacción.
¿Es ilegal tener bitcoins?
No
es ilegal el tener bitcoins en ningún país del mundo hasta ahora, incluso
varios gobiernos estudian la posibilidad de cargar impuestos a las ganancias en
ésta moneda.
La
anonimidad de las billeteras virtuales ha impulsado a personas inescrupulosas a
utilizar varios tipos de criptomonedas en sus pagos por sus productos y
servicios ilegales, pero las criptomonedas en sí no son ilegales.
Consultor
en informática e Instructor, certificado en Seguridad Informática, Graduado en
la Universidad Latina de Costa Rica con más de 10 años de experiencia en
diversas áreas de cultura organizacional en empresas multinacionales.
Sunday, March 2, 2014
Ingeniería Social, el punto débil de cualquier organización
Ingeniería Social, el
punto débil de cualquier organización
Hoy en día
es común el recibir correos de príncipes africanos que sólo necesitan nuestra
información bancaria para salvar sus millones a cambio de una comisión o de
loterías de internet que sólo requieren de $200 de impuesto para que nos envía
$4 millones de dólares, pero ¿cuantas personas cayeron ante estos engaños?,
¿Cuánta gente sigue cayendo?
El robo de
información de la empresa Kickstart, la empresa que ha conseguido capital para
las nuevas empresas a través de internet, no fue algo inesperado, por lo menos
no para los profesionales de seguridad, sino algo que era de esperarse luego de
los grandes robos contemporáneos.
Sony y
Target son empresas aún más grandes que han sufrido ataques informáticos en
los últimos años, la seguridad informática es algo que ni siquiera es prioridad
para los programadores y gerentes de empresas, es sólo otro gasto ¿verdad?,
pero cuando pasa algo como esto uno no duda en preguntarse, ¿no es un error
lógico y fácil de evitar?
La verdad,
difícil de tragar, es que la culpa es nuestra como usuarios, ¿cuántos de
nosotros leen los términos de licencia de un programa, o le encargamos a un
abogado a que lo haga y nos los explique?, ahora bien ¿cuántos leemos siquiera
lo que nos piden en las pantallas emergentes?, ¿cuándo es mejor presionar
“cancelar” que presionar “ok”?
Hace poco
me llegó un correo que fue novedoso, me guio a una página igual a paypal, una
página muy conocida de pago con tarjeta de crédito, y me alarmó mostrándome un
cargo al que yo no había accedido, siendo honesto yo ya sospechaba algo raro
por el comportamiento de la página, ya que todos los links me pedían “resetear” la cuenta antes de darme más
información e insistían en que debía “refrescar”
los datos de tarjeta de crédito, ¡Alerta!
Las páginas reales te dan la información una vez que uno se autentica,
no le piden más datos hasta que uno intente cambiar algo y le informan de lo
que pasa sin tener que autenticarse varias veces.
¿Cómo reconocer una página
falsa de una real?
1. Revise el campo de dirección: Las
páginas falsas utilizan nombres de dominio alternos o de países diferentes como
http://Bancogeneral.freewebs.com o http://Bancogeneral.com.ru
2. Los enlaces van todos hacia un mismo
destino: rara vez los artistas del engaño dedican mucho tiempo en la creación
de páginas falsas así que para ahorrar tiempo envían todos los enlaces de la
página a obtener su información
3. Exigen más información de la
necesaria para acceder: por lo general estos artistas son muy ambiciosos y
apuestan a obtener toda su información de una sola vez
Recuerde
1. Siempre acceda a sus páginas
financieras escribiendo la dirección directamente, nunca desde un enlace.
2. Si sospecha que entró a una página
falsa, ¡Cambie su clave!
3. Si recibe un email sospechoso,
envíelo a la oficina de seguridad informática de su empresa financiera
4. Elija empresas financieras que
tengan oficinas de seguridad informática.
¿Qué es ingeniería social?
El tema de
la ingeniería social es utilizar las habilidades sociales de una persona o
grupo para obtener información, esto se da a través de:
·
Llamadas
telefónicas: Cuando el “administrador del sistema” ocupa su clave para hacer un
mantenimiento de su cuenta, los administradores tienen control absoluto del
sistema y no requieren de claves para respaldar su correo electrónico.
·
Correos
electrónicos: ahora es posible el esconder virus en fotos y archivos de música
que se vuelven indetectables para muchos antivirus, solo abra los archivos que
vienen de fuentes fidedignas.
·
Acceso
físico: hay miles de tipos de dispositivos electrónicos diseñados para copiar y
rastrear información.
Recuerde, conforme la
empresa es más grande, la información es más valiosa.
El método
de defensa de las empresas pequeñas que les permite mantener cero o muy poco
presupuesto en seguridad es que el costo de violar su seguridad es más alto que
la ganancia potencial, esto no se da en empresas cuya base de datos incluya
información sensible de funcionarios de otras empresas o gobierno.
El error
de muchas empresas es minimizar el valor de sus activos, es recomendable invertir entre el 20% y el 30% de sus ganancias en
diversos dispositivos de seguridad y respaldo para su información.
Ahora
siempre va a existir un límite entre lo aceptable y lo inverosímil, un juego de
espías es muy poco probable conforme es una pequeña empresa, pero en una gran
empresa con negocios de millones de dólares, los micrófonos y cámaras espías no
son gran inversión contra la ganancia potencial.
Defiéndase de la
Ingeniería Social
La
ingeniería social depende del desconocimiento de sus empleados del valor de lo
que hacen y de la información recabada
por parte de los intrusos, la manera más fácil de defenderse es negativizar
ésta ecuación.
Sus
empleados deben conocer el valor de la información interna de la compañía y no revelarla
a personas externas, sus mercadólogos deben ser expertos en el arte de revelar
información que atraiga a sus clientes y posibles inversores, pero que sea
inútil a personas que deseen hacerle daño a su compañía.
Sus
auditorías de seguridad deben apoyar a
sus empleados dándoles herramientas para bloquear fugas de información y
reiterándoles el valor de su actividad y su valor en la empresa.
Recuerde
el 75% de los ataques (maliciosos y accidentales) dentro de cualquier empresa
son causados por sus mismo empleados.
Consultor
en informática e Instructor, certificado en Seguridad Informática, Graduado en
la Universidad Latina de Costa Rica con más de 10 años de experiencia en
diversas áreas de cultura organizacional en empresas multinacionales.
Subscribe to:
Posts (Atom)
Exploring the Differences between Red-Teaming and Blue-Teaming in Cybersecurity: Why Red-Teaming is Sexier; but Blue-Teaming is More Crucial
When it comes to cybersecurity, there are two teams that often get confused: redteams and blueteams. Redteams are the hackers, the ones w...

-
Que son LiveBindings? LiveBindings es la respuesta de Delphi para acelerar la programación de varios comportamientos de manera rápida y ef...
-
Para trabajar en JSON se utiliza el objeto TJSONObject, de la siguiente manera: Si uno está generando la información a enviar puede usar...
-
Ayer me llegó ésta pregunta y en el momento me pregunté si Embarcadero tenía un componente para hacerlo automágicamente, la respuesta es: ...