Facebook Fanpage


martes, 30 de octubre de 2012

Como-enviar-correos-con-java-mail


Amigos hoy les traigo como enviar correos electronicos desde JAVA MAIL

Codigo:
import java.util.Properties;
import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;



public class 
pruebamail {

    
/**
     * @param args
     */
    
public static void main(String[] args) {
        
// TODO Auto-generated method stub
   
           
         
Properties props = new Properties();
            
props.setProperty("mail.transport.protocol" "smtp");
            
props.setProperty("mail.smtp.starttls.enable","true");
            
props.setProperty("mail.smtp.host""smtp.live.com");
            
props.setProperty("mail.smtp.port""587");
            
props.setProperty("mail.smtp.auth","true");
            
props.setProperty("mail.smtp.user""MiCorreo@hotmail.com");

            
Session session Session.getDefaultInstance(propsnull);

            
MimeMessage message = new MimeMessage(session);
            try {       
                
message.setFrom(new InternetAddress("MiCorreo@hotmail.com"));
                
message.addRecipient(Message.RecipientType.TO, new InternetAddress("MiDestinatario@hotmail.com"));

                
message.setSubject("Vete ala verga culero XD");
                
message.setText("Dejame postear puto O.o");
               
                
Transport t session.getTransport("smtp");
                
t.connect("MiCorreo@hotmail.com","MiContraseña");
                
t.sendMessage(message,message.getAllRecipients());
                
System.out.println("Correo Enviado exitosamente!");

                
t.close();
            } catch (
Exception e) {
                
e.printStackTrace();

        }

    }

}  

Reportes en Yii a partir de una busqueda

Amigos hoy les traigo una forma de como generar Reportes en Yii a partir de una búsqueda y buscando en los foros de Yii me encontré con esta información espero les sirva como me sirvió a mi, sin mas aquí esta la explicación:

- En la función search() del modelo en cuestión agregamos al final (antes del retorno) las siguientes lineas de código:

     $_SESSION['datos_filtrados'] = new CActiveDataProvider($this, array(
                        'criteria'=>$criteria,
                        'sort'=>$sort,
                        'pagination'=>false,
                ));

Donde $criteria son los datos de filtrado y $sort el arreglo de ordenación, eso nos guardará en una variable de sesión la ultima búsqueda realizada, si no hemos realizado ninguna búsqueda estaremos guardando todos los resultados del listado, es importante colocar en false la paginación para que pueda traernos todos los resultados.

- En la vista admin agregar el botón de exportar con array('label'=>'Exportar a PDF', 'url'=>array('pdf')), en la configuración del menú.

- En el controlador agregamos la siguiente función:

public function actionPdf()
    {
        $this->render('pdf');
    }

- Agrega la action pdf en el accessRules del controlador, para que los usuarios del sistema puedan tener permisos de utilizarla.

- La librería que uso y recomiendo para exportar pdf es MPDF, la pueden descargar de su pagina oficial, una vez descargada la copian en extensions.

- Un ejemplo para la vista pdf es el siguiente:

<?
$pdf = Yii::createComponent('application.extensions.MPDF52.mpdf');
$dataProvider = $_SESSION['datos_filtrados']->getData();
$contador=count($dataProvider);
    $html.=' <link rel="stylesheet" type="text/css" href="'.Yii::app()->request->baseUrl.'/css/pdf.css" />

    <table align="center"><tr>
    <td align="center"><b>LISTADO DE CONTRATOS</b></td>
    </tr></table>
    Total Resultados: '.$contador.'
        <table class="detail-view2" repeat_header="1" cellpadding="1" cellspacing="1" width="100%" border="0">
            <tr class="principal">
                <td class="principal" width="7%">&nbsp;N° Control</td>
                <td class="principal" width="7%">&nbsp;N° Contrato</td>
                <td class="principal" width="19%">&nbsp;Empresa</td>
                <td class="principal" width="10%">&nbsp;Estado</td>
                <td class="principal" width="9%">&nbsp;Monto Contratado</td>
                <td class="principal" width="25%">&nbsp;Objeto Contrato</td>
                <td class="principal" width="14%">&nbsp;Personal Actuante</td>
                <td class="principal" width="9%">&nbsp;Tipo Informe</td>
            </tr>';
         $i=0;
         $val=count($dataProvider);
         
         while($i<$val){
$html.='
            <tr class="odd">
                <td class="odd" width="7%">&nbsp;'.$dataProvider[$i]["num_control"].'</td>
                <td class="odd" width="7%">&nbsp;'.$dataProvider[$i]["num_contrato"].'</td>
                <td class="odd" width="19%">&nbsp;'.$dataProvider[$i]["empresa"].'</td>
                <td class="odd" width="10%">&nbsp;'.$dataProvider[$i]["estado0"]["nombre_estado"].'</td>
                <td class="odd" width="9%">&nbsp;'.$dataProvider[$i]["monto_contratado"].'</td>
                <td class="odd" width="25%">&nbsp;'.$dataProvider[$i]["objeto_contrato"].'</td>
                <td class="odd" width="14%">&nbsp;'.$dataProvider[$i]["personal_actuante"].'</td>
                <td class="odd" width="9%">&nbsp;'.$dataProvider[$i]["informe0"]["nombre_tipo_informe"].'</td>
            ';
    $html.='</tr>'; $i++;
                        }
    $html.='</table>';
$mpdf=new mPDF('win-1252','LETTER-L','','',9,9,24,10,5,5);
$mpdf->WriteHTML($html);
$mpdf->Output('Reporte_Contratos.pdf','D');
exit;
?>

- Como vemos al principio del ejemplo tomamos los datos filtrado mediante la variable de sesión y disponemos de ellos como queramos en el pdf

Espero que les sirva de ayuda, ahí en el ejemplo puse como acceder incluso a campos de las otras tablas mediante las relaciones.


Via: http://www.yiiframework.com/forum/index.php?/topic/22686-reportes-en-yii-a-partir-de-una-busqueda/

Exportar del CGridView a PDF

Amigos hoy les traigo una forma de como Exportar del CGridView a PDF y buscando en los foros de Yii me encontré con esta información espero les sirva como me sirvió a mi, sin mas aquí esta la explicación:

- Lo primero que hacemos es bajarnos la ultima versión de MPDF de su pagina oficial http://www.mpdf1.com/mpdf/  y la colocamos en protected/extensions

- Copiamos en el controlador de la tabla a la que se hará el reporte la siguiente función:

   public function actionPdf($id)
    {
        $this->render('pdf',array(
            'model'=>$this->loadModel($id),
        ));
    }

- Colocamos pdf en la funcion accessRules() del mismo controlador para que los usuarios puedan acceder a la acción

- En la vista admin sustituir el arreglo de los botones por el siguiente:

 array(
            'class'=>'CButtonColumn',
                    'template' => '{view} {update} {delete} {pdf}',
                'buttons'=>array(
                        'pdf' => array(
                                'label'=>'Generar PDF', 
                                'url'=>"CHtml::normalizeUrl(array('pdf', 'id'=>\$data->id))",
                                'imageUrl'=>Yii::app()->request->baseUrl.'/images/pdf_icon.png', 
                                'options' => array('class'=>'pdf'),
                        ),
                ),
        ),

- En la vista view agregamos la vista de nuestro pdf en el menu:

 array('label'=>'Crear PDF', 'url'=>array('pdf','id'=>$model->id)),

- En mi caso la clave primaria del registro la puse como id en la base de datos, si en tu caso es "id_producto" o algo por el estilo debes cambiarlo cuando se pasa el dato a la vista.

- Y por ultimo tenemos el archivo pdf.php que estará en las vistas:

<?php
$pdf = Yii::createComponent('application.extensions.MPDF52.mpdf');

$html='
<link rel="stylesheet" type="text/css" href="'.Yii::app()->request->baseUrl.'/css/pdf.css" />

<table id="yw0" class="detail-view2">
<tr class="principal">
<td colspan="2" align="center"><b>DATOS DEL CONTRATO</b></td>
<tr>
<tr class="odd"><td> <b>N° Control</b> </td><td> '.$model->num_control.'</td></tr>
<tr class="even"><td> <b>Trimestre Ejecucion</b> </td><td> '.$model->trimestre_ejecucion.'</td></tr>
<tr class="odd"><td> <b>Nombre Estado</b> </td><td> '.$model->estado0["nombre_estado"].'</td></tr>
<tr class="even"><td> <b>Empresa</b> </td><td> '.$model->empresa.'</td></tr>
<tr class="odd"><td> <b>Personal Actuante</b> </td><td> '.$model->personal_actuante.'</td></tr>
<tr class="even"><td> <b>Nombre Tipo Informe</b> </td><td> '.$model->informe0["nombre_tipo_informe"].'</td></tr>
<tr class="even"><td> <b>N° Contrato</b> </td><td> '.$model->num_contrato.'</td></tr>
<tr class="odd"><td> <b>Monto Contratado</b> </td><td> '.$model->monto_contratado.'</td></tr>
<tr class="even"><td> <b>Monto Auditado</b> </td><td> '.$model->monto_auditado.'</td></tr>
<tr class="odd"><td> <b>Porcentaje Ejecucion</b> </td><td> '.$model->porcentaje.'</td></tr>
<tr class="even"><td> <b>Objeto Contrato</b> </td><td> '.$model->objeto_contrato.'</td></tr>
<tr class="odd"><td> <b>Observaciones</b> </td><td> '.$model->observaciones.'</td></tr>
<tr class="even"><td> <b>Recomendaciones</b> </td><td> '.$model->recomendaciones.'</td></tr>
<tr class="odd"><td> <b>Monto Hallazgo</b> </td><td> '.$model->monto_hallazgo.'</td></tr>
<tr class="even"><td> <b>Origen Tramite</b> </td><td> '.$model->origen0["nombre_origen_tramite"].'</td></tr>
</table>

';
$mpdf=new mPDF('win-1252','LETTER','','',15,15,25,12,5,7);
$mpdf->WriteHTML($html);
$mpdf->Output('Ficha-Contrato-'.$model->num_control.'.pdf','D');
exit;
?>

Via: http://www.yiiframework.com/forum/index.php/topic/22694-exportar-del-cgridview-a-pdf/

martes, 23 de octubre de 2012

Como hacer que Yii reconozca modulos automaticamente


Escenario :
Necesitamos que la aplicacion al cargar, reconozca los modulos que tenga incluido, mas los modulos que puedan tener estos otros modulos.

¿Que debemos hacer?

En el fichero de inicio de la aplicacion (index.php) sustituí
Yii::createWebApplication($config)->run();
por

Código PHP:
class VRSTWebApplication extends CWebApplication{public function __construct($config=null){parent::__construct($config);
$this->_configurarModulosAplicacion();}
private function _configurarModulosAplicacion(){$modulos=array();$mods=AyudaModulo::modulosExistentes(realpath(Yii::app()->basePath . DIRECTORY_SEPARATOR . 'modules'));foreach($mods as $mod) {$this->setImport(array('application.modules.'.$mod.'.models.*','application.modules.'.$mod.'.components.*',));$this->setModules(array($mod=>array('id'=>$mod)));
$modulo=$this->getModule($mod);}}
}$webApp=new VRSTWebApplication($config);$webApp->run();




Esto para detectar los modulos que existen dentro de la carpeta protected/modules y configurarselos a la aplicacion.
La linea $modulo=$this->getModule($mod); me sirve para que cada modulo configurado al cargarse tambien "recargue" los modulos que tenga dentro.
Para esto cree una clase que hereda de CWebModule y pongo todos mis modulos a heredar de ella.

Esta clase tiene un metodo que se se encarga de cargar los modulos interiores, este es el codigo:




Código PHP:
private function _configurarModulosComponentes(){$this->setImport(array($this->id.'.models.*',$this->id.'.components.*',));
$mods=AyudaModulo::modulosExistentes($this->modulePath);foreach($mods as $mod) {$strMod=strtolower($mod);$this->setImport(array($this->id.'.'.$strMod.'.models.*',$this->id.'.'.$strMod.'.components.*',));
$this->setModules(array($strMod=>array('id'=>$strMod)));$modulo=$this->getModule($strMod);}}



Como resolver lo del usuario?
En esta misma clase redefinír el metodo:



Código PHP:
public function beforeControllerAction($controller, $action){if(parent::beforeControllerAction($controller, $action)){if ((Yii::app()->session['usuarioNombre']=='')||(Yii::app()->session['usuarioClave']=='')){$controller->redirect(Yii::app()->homeUrl);}if (Yii::app()->user->isGuest){$LoginForm = new LoginForm;$LoginForm->username = Yii::app()->session['usuarioNombre'];$LoginForm->password = Yii::app()->session['usuarioClave'];$LoginForm->login();}
return true;}elsereturn false;}


Basicamente lo que se hace es preguntar por dos variables de sesión, usuarioNombre y usuarioClave, si estan vacias redirecciono para homeUrl, si no entonces creo un nuevo modelo LoginForm y hago Login.




lunes, 22 de octubre de 2012

Como publicar una imagen en CgridView - Yii Framework


Este es un ejemplo sencillo de como mostrar una imagen dentro de un CGridview. Supongamos que tenemos un campo donde guardamos la direccion de la imagen que deseamos mostrar, lo que deberíamos hacer es lo siguiente:

Código PHP:
<?php $this->widget('zii.widgets.grid.CGridView', array(
    
'id'=>'publicidad-grid',
    
'dataProvider'=>$model->search(),
    
'filter'=>$model,
    
'columns'=>array(
        
'id',
        
'nombre',
        
'alta',
        array(
            
'type'=>'html',
            
'name'=>'imagen',
            
'value'=>'CHtml::image($data->imagen)',
        ),
        
'web',
        array(
            
'class'=>'CButtonColumn',
        ),
    ),
)); 
?>
con este sencillo código podríamos mostrar la imagen que se halla guardada en el campo imagen

domingo, 14 de octubre de 2012

Configurar Keylogger por FTP y Enviar Infomacón

Esta es una guia para configurar un keylogger de Ardamax por FTP la puedes aplicar tambien para un keylogger remoto, remplazandola el metodo de entrega por FTP. Para instalacion y serial puedes ver esta guia de como instalar un keylogger Ardamax full.



Una vez hecho la configuración puedes ejecutarlo en tu PC instalado para hacer la prueba y si quieres enviarlo de forma remota por email, pero asegúrate antes de camuflarlo o subelo a un servidor externo como dropbox y copias el enlace directo de descargar para enviarlo por email o messenger.

 Con un servidor FTP recibes todo los registros de tu victima en tu navegador web gracias a un servicio gratuito que nos dan 1Gb de espacio pero para esto primero vamos a configurar nuestro keylogger.

Paso1 : Abrir Instalador --> Clic en Opciones


Paso 2: En la Secion General --> Invisibilidad
En esta ventana habilitamos todas las opciones para hacerlo totalmente invisible




Paso 3: Contraseña de Acceso
Es recomendable colocar una contraseña para evitar ser manipulado para esto haz clic en activar - digita una contraseña



Paso 4: Mas Opciones:
Las opciones las dejamos habilitada la opción de iniciar al arrancar Windows y en modo oculto, el idioma seria recomendable cambiarlo a ingles. puedes programar una fecha en la que se destruirá una vez se instale, por ejemplo que se desístale en un mes (dependiendo de lo que buscamos)


Paso 5: Crear una en www.drivehq.com
Es un servicio gratuito de 1Gb solo registrate con tu e-mail y un usuario para acceder a tus archivos


Llena el Formulario y clic en Free Sign Up y clic en My Account


Paso 6: Crear una Carpeta en Drivehq
en esta carpeta se guardar todos los registros de nuestra victima
6.1 Haz clic en MY Stogare / New Folder



6.2 dale un nombre a tu carpeta sin espacios en Folder Name y clic en Submit




Paso 7: Seleciona Modo Entrega > FTP
llegan los siguientes datos y clic en probar
Servidor FTP: ftp.drivehq.com
Directorio Remoto: \nombre_carpeta
llena el Nombre de usuario y contraseña con el que registraste
Clic en Probar Hasta que te salga el mensaje que se ha completado correctamente


Nota: Asegúrate de colocar sin espacios la carpeta de lo contrario te puede salir un mensaje como este: no se puede conectar al servidor FTP o no se puede cambiar a otro directorio Permission Deneid.

 Paso 8: Monitorizacion
Activa todas las opciones de control, establece el tiempo en cual captura la pantalla y las conversaciones del chat.Clic en Aceptar.


Paso 9: Prueba
Espera unos minutos e ingresa a tu cuenta de driveHQ.com, abre tu carpeta, en ella encontraras las capturas de pantalla, y dos paginas web que contienen las paginas que visito y los registros por teclado (Chat, contraseñas y todo lo demas).


Nota Final: Sino llega nada es por cuenta del antivirus que tiene instalado tu PC o porque no aplicastes bien los pasos, para hacer la prueba desactiva tu antivirus y en el caso del keylogger remoto utiliza esta herramienta llamada Themida que te permite hacer indetectable tu keylogger.

Nose la Razon por la cual aparece un mensaje cuando se va instalar un keylogger, asi que si encuentran alguna opcion o solucion pues la puedes compartir. Buena Suerte!

Camuflar un Keylogger Remoto .EXE


Paso 1. Busca en google: Themida 2.0.4.0 Full , Descarga e instala, viene con el crack para la instalacion.
Paso 2. Descomprime y copia la caperta themida en archivos de programa y como tambien el crak "Themida Patch.exe" y ejecuta Themida Patch.exe y haz clic en crack y Yes para confirmar.





Paso 3. Busca el archivo .exe a blindar




Paso 4. clic en Protection OPtions y habilita todas las opciones.




Paso 5. Le Damos Click en el Candado para poderlo Blindar. y clic en Protect


sábado, 13 de octubre de 2012

Configurar un Keylogger 3.8 + Enviar Correo


Configurar un Keylogger 3.8 + Enviar Correo

Paso 1. Descargar "Ardamax keylogger 3.7.6 + serial (con instalación remota)" el archivo que viene con el serial funcionado y sin virus, la version 3.8 solo es un par de actualizaciones, asi que puedes usar este serial.


Paso 2. inicia la instalacion normal en tu PC


Paso 3. Ingresa la clave de instalacion y clic en instalacion remota.








¿COMO CREAR EL EL ROMOTO?

Paso 1Haz clic en siguiente para iniciar el asistente de instalacion


Paso 2. Apariencia
2.1 la carpeta donde se instala puede ser C:\Windows\System32 o C:\Windows\ dejalo por defecto.
2.2 si quieres agregar un documento,imagen para que cuando hagan doble clic en el instalador se habra por ejemplo una imagen y asi no depertar sospechas.

Paso 3. Invisibilidad (Totalmente)
Habilita todas las opciones para no ser detectado por el usuario.




Paso 4. Contraseña de Acceso
Es recomendable colocar una contraseña para evitar ser manipulado para esto haz clic en activar - digita una contraseña, pero no es obligatorio.
Paso 5. keylogger
5.1 El atajo ctrl + mayus +alt+h es para abrir el visor de registro
5.2 El idioma seria recomendable cambiarlo a ingles
5.3 es para programar (Desinstalar) una fecha en la que se destruirá una vez se instale, por ejemplo que se desístale en un mes 

Paso 6. El Control.
6.1 programa el tiempo para enviar los registros por email
6.2 el método que utilizaremos será email
6.3 déjalo tal como esta
6.4 el formato recomendable para ver los registro es como pagina web

Paso 7: Correo (Ejemplo con Gmail)
* Solo ingresa tu correo electrónico y contraseña de tu e-mail, que Ardamax llena el resto de manera automática y clic en probar.
* cual salga el mensaje la prueba fue exitosa, revisa tu bandeja de entrada para confirmar.


Ahora revisa tu correo para confirma

Paso 8: Control
seleciona el primero y con la tecla ctrol + clic selecciona: registro de teclado, monitoreo de actividad en la web,chat y mensajes (msn,facebook,twitter...), capturas monitor, capturas cámara (webcam)


Paso 9: Captura pantalla: selecciona en tiempo de envio y clic en siguiente


Paso 10: Captura Webcam: seleciona en tiempo de envio y clic en siguiente
Paso 11: Busca la ruta donde se guardara y cambia el inoco por defecto





Listo El resultado es lo que se manda a al victima