elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 41
51  Programación / Ingeniería Inversa / Re: como liberar un programa demo en: 26 Mayo 2011, 05:28 am
"como liberar un programa demo"
Simplemente adquieres la licencia  :xD

Y el programa que mencionas es...  :huh:
dudo que alguien pueda ayudarte  :-\
52  Seguridad Informática / Análisis y Diseño de Malware / Re: Demonio - Version 2.1 correccíón de errores y cambios menores en: 16 Abril 2011, 17:58 pm
Cuando le das a construir en jpeg.pro sale un cartel "no se pudo localizar el ejecutable ..." lo cual no importa porque ya se crearon las librerias para jpeg y el "servidor" deberia correr sin problemas, en otro caso haces lo siguiente:

Desinstalar completamente Qt, luego instala QT SDK http://qt.nokia.com/downloads/ (LGPL), entra a Qt Command Prompt (si es win vista o 7 como admin).
Escribe:
Código:
configure -release -qt-libjpeg -qt-libpng -static

y cuando termine escribes:

Código:
mingw32-make

al terminar haces lo que escribi arriba en jpeg.pro y ahi debe funcionar.

Saluos.
53  Seguridad Informática / Análisis y Diseño de Malware / Re: Demonio - Version 2.1 correccíón de errores y cambios menores en: 10 Abril 2011, 19:08 pm
Para ese error solo entras a:

Código:
C:\Qt\2010.05\qt\src\plugins\imageformats\jpeg\jpeg.pro

abres el proyecto con QT Creator lo construyes y corres, cierras y ahi ya debe crear el servidor sin problemas:





Saluos.
54  Programación / Ingeniería Inversa / Re: Crackeando Eyecopia 2.0.7 - 1.4.6.0 en: 7 Abril 2011, 04:04 am
Podrias probar hacerlo funcionar como demo y ver si funciona correctamente el evento que mencionas, podria ser una falla del mismo programa, en otro caso habria que saber que evento exactamente es el que falla  :P

Saluos
55  Programación / Programación C/C++ / Re: MySql Browser C++ y Qt en: 7 Abril 2011, 04:00 am
Loa archivos .tar pueden abrirse con Winrar sin problemas, pero mejor te dejo el code asi lo armas directamente:

sql.h

Código
  1. #ifndef SQL_H
  2. #define SQL_H
  3. #include <QtSql>
  4. #include <QSqlDatabase>
  5. #include <QSqlQuery>
  6. #include <QMessageBox>
  7. #include <QListWidget>
  8. #include <QTreeWidget>
  9. #include <QtGui>
  10. class QTreeWidgetItem;
  11. class cMySql
  12. {
  13. public:
  14.    cMySql(){cItem=0;};
  15.    bool createConeccion(const QString sServer, const QString sBD, const QString sUser, const QString sPassword);
  16.    void closeConeccion();
  17.    void listBD(QListWidget *listQuery);
  18.    void listTables(QListWidget *listQuery, const QString sBD);
  19.    void listRows(QTreeWidget *qtWidget, QTreeWidgetItem *qtrItem, const QString sBD, const QString sTable, QIcon iconItem);
  20.    void editResults(const QString sBD, const QString sTable, const QString s1erColumn, const QString sColumn, QString sId, const QString sNewValue);
  21.    void MessageBox(const QString sTitle, const QString sMessage);
  22. private:
  23.    QSqlDatabase db;
  24.    QTreeWidgetItem *cItem;
  25. };
  26.  
  27. #endif // SQL_H
  28.  

sql.cpp

Código
  1. #include "sql.h"
  2. bool cMySql::createConeccion(const QString sServer, const QString sBD, const QString sUser, const QString sPassword)
  3. {
  4.    db = QSqlDatabase::addDatabase("QMYSQL");
  5.    db.setHostName(sServer);
  6.    db.setDatabaseName(sBD);
  7.    db.setUserName(sUser);
  8.    db.setPassword(sPassword);
  9.    db.setPort(3306);
  10.    if (!db.open()) {
  11.        MessageBox("Error al acceder a la Base de Datos",db.lastError().text());
  12.        return false;
  13.        }    
  14.    return true;
  15. }
  16. void cMySql::listBD(QListWidget *listQuery)
  17. {
  18.    listQuery->clear();    
  19.    QSqlQuery query;
  20.    query.exec("show databases");
  21.    while (query.next()) {
  22.        listQuery->addItem(query.value(0).toString());
  23.        qApp->processEvents(QEventLoop::AllEvents);
  24.    }
  25. }
  26. void cMySql::listTables(QListWidget *listQuery, const QString sBD)
  27. {
  28.    listQuery->clear();
  29.    QSqlQuery query;
  30.    query.exec("use " + sBD);
  31.    query.exec("SHOW TABLES");
  32.    while (query.next()) {
  33.        listQuery->addItem(query.value(0).toString());
  34.        qApp->processEvents(QEventLoop::AllEvents);
  35.    }
  36. }
  37. void cMySql::listRows(QTreeWidget *qtWidget, QTreeWidgetItem *qtrItem, const QString sBD, const QString sTable, QIcon iconItem)
  38. {
  39.    qtWidget->clear();    
  40.    for(int i=0;i<qtrItem->columnCount();i++)
  41.    {
  42.        qtrItem->setText(i, QApplication::translate("window", (const char *) "", 0, QApplication::UnicodeUTF8));
  43.    }
  44.    int i =0;
  45.    QSqlQuery query;
  46.    QSqlQuery query1;
  47.    query.exec("use " + sBD);
  48.    query.exec("DESCRIBE " + sTable);
  49.    while (query.next()) {    
  50.        qtrItem->setIcon(i, iconItem);
  51.        qtrItem->setText(i, QApplication::translate("window", (const char *) query.value(0).toString().toLatin1().data(), 0, QApplication::UnicodeUTF8));                
  52.        i++;
  53.        qApp->processEvents(QEventLoop::AllEvents);
  54.    }
  55.    qtWidget->setColumnCount(7);
  56.  
  57.    query1.exec("SELECT * FROM " + sTable);
  58.      while (query1.next()) {
  59.          cItem = new QTreeWidgetItem(qtWidget);
  60.          for(int j=0; j<i;j++)
  61.          {
  62.              const QString setData = query1.value(j).toString();
  63.              cItem->setText(j,(const char *)setData.toLatin1().data());
  64.              qApp->processEvents(QEventLoop::AllEvents);
  65.          }
  66.          qApp->processEvents(QEventLoop::AllEvents);
  67.        }    
  68. }
  69. void cMySql::editResults(QString sBD, QString sTable, QString s1erColumn, QString sColumn, QString sId, QString sNewValue)
  70. {
  71.    QSqlQuery query;
  72.    query.exec("use " + sBD);
  73.    if(query.exec("UPDATE " + sTable + " SET " + sColumn + "='" + sNewValue + "' WHERE " + s1erColumn + "=" + sId))
  74.        MessageBox("Edicion Correcta","Se actualizo el valor: " + sNewValue);
  75.    else MessageBox("error",query.lastError().text());
  76. }
  77.  
  78. void cMySql::closeConeccion()
  79. {
  80.    if(db.isOpen())db.close();
  81. }
  82. void cMySql::MessageBox(const QString sTitle, const QString sMessage)
  83. {
  84.    QMessageBox mBox;
  85.    mBox.setWindowTitle(sTitle);
  86.    mBox.setText(sTitle);
  87.    mBox.setInformativeText( sMessage);
  88.    mBox.setStandardButtons(QMessageBox::Ok);
  89.    mBox.setDefaultButton(QMessageBox::Ok);
  90.    mBox.setIcon(QMessageBox::Information);
  91.    mBox.exec();
  92. }
  93.  

window.h

Código
  1. #ifndef WINDOW_H
  2. #define WINDOW_H
  3. #include <QDialog>
  4. #include <QIcon>
  5. #include "sql.h"
  6. class QLineEdit;
  7. class QLabel;
  8. class QPushButton;
  9. class QGroupBox;
  10. class QListWidget;
  11. class QTreeWidget;
  12. class QTreeWidgetItem;
  13. class  QTreeWidgetItem;
  14. class QStandardItemModel;
  15. class dWindow: public QDialog
  16. {
  17.    Q_OBJECT
  18. public:
  19.    dWindow(QWidget *parent = 0);
  20.    ~dWindow();
  21.    void createTreeResult(const QString &sColumn, const int iTotal);
  22.    void setDataTreeResult(QTreeWidget *qtWidget, const QString &sData, int iColumna);
  23. protected:
  24.    void closeEvent(QCloseEvent *event);
  25. private slots:
  26.    void vQueryClicked();
  27.    void vQuery(const QString sServer, const QString sBD, const QString sUser, const QString sPassword);
  28.    void on_listBD_itemClicked();
  29.    void on_listTables_itemClicked();
  30.    void on_treeResult_itemClicked();
  31. private:
  32.    QLabel *labelUser;
  33.    QLabel *labelPassword;
  34.    QLabel *labelBD;
  35.    QLabel *labelServer;
  36.    QLabel *labelResBD;
  37.    QLabel *labelTables;
  38.    QLabel *labelRows;
  39.    QLineEdit *lineUser;
  40.    QLineEdit *linePassword;
  41.    QLineEdit *lineBD;
  42.    QLineEdit *lineServer;
  43.    QPushButton *butQuery;
  44.    QPushButton *butExit;
  45.    QGroupBox *groupBox;
  46.    QGroupBox *groupBox1;
  47.    QGroupBox *groupBox2;
  48.    QListWidget *listBD;
  49.    QListWidget *listTables;
  50.    QTreeWidget *treeResult;
  51.    QTreeWidgetItem *qtrItem;    
  52.    QIcon icon;
  53.    QIcon iconItem;
  54.    QTreeWidgetItem *cItem;
  55.    QStandardItemModel *model;
  56.    cMySql mysql;
  57. };
  58. #endif // WINDOW_H
  59.  

window.cpp

icon e iconItem usan archivos de recursos (find.png, items.png) que puedes agregarlos en el proyecto con las imagenes que gustes.

Código
  1. #include <QtGui>
  2. #include "window.h"
  3. #define MAX_LENGHT 20
  4. dWindow::dWindow(QWidget *parent)
  5.    :QDialog(parent)
  6. {
  7.    QFont fuente;
  8.    fuente.setFamily(QString::fromUtf8("Modern No. 20"));
  9.    fuente.setPointSize(14);
  10.    fuente.setBold(true);
  11.    fuente.setItalic(true);
  12.    fuente.setWeight(60);
  13.  
  14.    QFont fuente2;
  15.    fuente2.setFamily(QString::fromUtf8("MS Shell Dlg 2"));
  16.    fuente2.setPointSize(10);
  17.    fuente2.setBold(true);
  18.    fuente2.setWeight(50);
  19.  
  20.    QDesktopWidget *d = QApplication::desktop();
  21.    int ancho = d->width();
  22.    int alto = d->height();
  23.  
  24.    //Añadimos el icono del archivo de recursos
  25.    icon.addFile(QString::fromUtf8(":/icos/iconos/find.png"), QSize(), QIcon::Selected, QIcon::On);
  26.    iconItem.addFile(QString::fromUtf8(":/icos/iconos/items.png"), QSize(), QIcon::Selected, QIcon::On);
  27.  
  28.    //GROUPBOX PARA LA CONEXION
  29.    groupBox = new QGroupBox(this);
  30.    groupBox->setObjectName(QString::fromUtf8("gbDatos"));
  31.    groupBox->setGeometry(QRect(10, 10, 780, 100)); //X,Y,ANCHO,ALTO
  32.  
  33.    labelUser = new QLabel(tr("USUARIO"),groupBox);
  34.    labelUser->setGeometry(QRect(10, 20, 130, 25));
  35.  
  36.    lineUser = new QLineEdit(groupBox);
  37.    lineUser->setGeometry(QRect(10, 50, 130, 20));
  38.  
  39.    labelPassword = new QLabel(tr("PASSWORD"),groupBox);
  40.    labelPassword->setGeometry(QRect(145, 20, 130, 20));
  41.  
  42.    linePassword = new QLineEdit(groupBox);
  43.    linePassword->setEchoMode(QLineEdit::Password);
  44.    linePassword->setGeometry(QRect(145, 50, 130, 20));
  45.  
  46.    labelBD = new QLabel(tr("BASE DE DATOS"),groupBox);
  47.    labelBD->setGeometry(QRect(280, 20, 170, 25));
  48.  
  49.    lineBD = new QLineEdit(groupBox);
  50.    lineBD->setGeometry(QRect(280, 50, 170, 20));
  51.  
  52.    labelServer = new QLabel(tr("SERVIDOR"),groupBox);
  53.    labelServer->setGeometry(QRect(455, 20, 130, 25));
  54.  
  55.    lineServer = new QLineEdit(groupBox);
  56.    lineServer->setGeometry(QRect(455, 50, 170, 20));
  57.  
  58.    //buttons
  59.    butQuery = new QPushButton(tr("Iniciar consulta"),groupBox);
  60.    butQuery->setGeometry(QRect(630, 14, 145, 35));
  61.    butExit = new QPushButton(tr("Salir"),groupBox);
  62.    butExit->setGeometry(QRect(630, 58, 145, 35));
  63.  
  64.    //GROUPBOX PARA LOS RESULTADOS
  65.    groupBox1 = new QGroupBox(this);
  66.    groupBox1->setObjectName(QString::fromUtf8("gbResultado"));
  67.    groupBox1->setGeometry(QRect(10, 115, 780, 105));
  68.  
  69.    labelResBD = new QLabel(tr("Lista Bases de Datos"),groupBox1);
  70.    labelResBD->setGeometry(QRect(60, 20, 200, 25));
  71.    labelTables = new QLabel(tr("Lista Tablas de la Base de Datos"),groupBox1);
  72.    labelTables->setGeometry(QRect(450, 20, 300, 25));
  73.  
  74.    listBD = new QListWidget(groupBox1);
  75.    listBD->setGeometry(QRect(10, 45, 370, 50));
  76.  
  77.    listTables = new QListWidget(groupBox1);
  78.    listTables->setGeometry(QRect(395, 45, 370, 50));
  79.  
  80.    //GROUPBOX PARA LOS RESULTADOS DE LOS DATOS
  81.    groupBox2 = new QGroupBox(this);
  82.    groupBox2->setObjectName(QString::fromUtf8("gbDatos"));
  83.    groupBox2->setGeometry(QRect(10, 230, 780, 350));
  84.  
  85.    labelRows = new QLabel(tr("Lista datos encontrados en las tablas de la Base de Datos"),groupBox2);
  86.    labelRows->setGeometry(QRect(150, 20, 500, 25));
  87.  
  88.    treeResult = new QTreeWidget(groupBox2);
  89.    qtrItem = new QTreeWidgetItem();
  90.    model = new QStandardItemModel(treeResult);
  91.    treeResult->setHeaderItem(qtrItem);
  92.    treeResult->setObjectName(QString::fromUtf8("treeResult"));
  93.    treeResult->setGeometry(QRect(10, 45, 760, 300));    
  94.    treeResult->header()->setClickable(true);
  95.    QString iniciar = "";
  96.    createTreeResult(iniciar,7);
  97.  
  98.    //INCLUYENDO LA FUENTE DE LETRA
  99.    groupBox->setFont(fuente);
  100.    groupBox1->setFont(fuente);
  101.    groupBox2->setFont(fuente);
  102.    listBD->setFont(fuente2);
  103.    listTables->setFont(fuente2);
  104.    treeResult->setFont(fuente2);
  105.  
  106.    //Seteamos el maximo tamaño y numero de caracteres que puenden ingresar
  107.    lineUser->setMaxLength(MAX_LENGHT);
  108.    linePassword->setMaxLength(MAX_LENGHT);    
  109.    lineBD->setMaxLength(MAX_LENGHT);
  110.    lineServer->setMaxLength(MAX_LENGHT);
  111.  
  112.  
  113.    connect(butQuery,SIGNAL(clicked()),this,SLOT(vQueryClicked()));
  114.    connect(butExit,SIGNAL(clicked()),this,SLOT(close()));
  115.    connect(listBD,SIGNAL(itemClicked(QListWidgetItem*)),this,SLOT(on_listBD_itemClicked()));
  116.    connect(listTables,SIGNAL(itemClicked(QListWidgetItem*)),this,SLOT(on_listTables_itemClicked()));
  117.    connect(treeResult,SIGNAL(clicked(QModelIndex)),this,SLOT(on_treeResult_itemClicked()));
  118.  
  119.    groupBox->setTitle(QApplication::translate("Inicio", "REQUISITOS PARA INGRESAR A LA BASE DE DATOS", 0, QApplication::UnicodeUTF8));
  120.    groupBox1->setTitle(QApplication::translate("Inicio", "RESULTADOS DEL ESCANEO AL SERVIDOR DE BASE DE DATOS", 0, QApplication::UnicodeUTF8));
  121.    groupBox2->setTitle(QApplication::translate("Inicio", "RESULTADOS DE LA CONSULTA A LA TABLA EN LA BASE DE DATOS", 0, QApplication::UnicodeUTF8));
  122.    setWindowTitle(tr("MYSQL BROWSER BY 43H4FH44H45H4CH49H56H45H"));
  123.    Qt::WindowFlags f = Qt::Window ;
  124.    setWindowFlags(f);
  125.    setGeometry((ancho)-1100,(alto)-700,800,600);
  126.    setStyleSheet(QString::fromUtf8("background-color: rgb(255, 255, 255);"));
  127.    setMaximumSize(800,600);
  128.    setMinimumSize(800,600);
  129.    setWindowIcon(icon);
  130. }
  131. dWindow::~dWindow()
  132. {
  133.    delete labelUser;
  134.    delete labelPassword;
  135.    delete labelBD;
  136.    delete labelServer;
  137.    delete labelResBD;
  138.    delete labelTables;
  139.    delete labelRows;
  140.    delete lineUser;
  141.    delete linePassword;
  142.    delete lineBD;
  143.    delete lineServer;
  144.    delete butQuery;
  145.    delete butExit;
  146.    delete groupBox;
  147.    delete groupBox1;
  148.    delete groupBox2;
  149.    delete listBD;
  150.    delete listTables;
  151.    delete treeResult;
  152.    delete qtrItem;
  153.    delete cItem;
  154.    delete model;
  155. }
  156.  
  157. void dWindow::vQueryClicked()
  158. {
  159.    listTables->clear();
  160.    listBD->clear();
  161.    treeResult->clear();
  162.    if(!lineServer->text().isEmpty() || !lineBD->text().isEmpty() || !lineUser->text().isEmpty()|| !linePassword->text().isEmpty())
  163.        {
  164.            vQuery(lineServer->text(),lineBD->text(),lineUser->text(),linePassword->text());
  165.        }
  166.    else mysql.MessageBox("Error en los Datos Ingresados", "Llene todos los datos antes de realizar la conexion");
  167. }
  168. void dWindow::vQuery(const QString sServer, const QString sBD, const QString sUser, const QString sPassword)
  169. {    
  170.    if(mysql.createConeccion(sServer,sBD,sUser,sPassword))
  171.    {
  172.        butQuery->setDisabled(true);
  173.        lineServer->setDisabled(true);
  174.        lineBD->setDisabled(true);
  175.        lineUser->setDisabled(true);
  176.        linePassword->setDisabled(true);
  177.        mysql.listBD(listBD);
  178.    }
  179. }
  180. void dWindow::on_listBD_itemClicked()
  181. {
  182.    listBD->setDisabled(true);
  183.    listTables->setDisabled(true);
  184.    treeResult->setDisabled(true);
  185.    listTables->clear();
  186.    treeResult->clear();
  187.    QListWidgetItem *curitem = listBD->currentItem();
  188.    QString text = curitem->text();
  189.    mysql.listTables(listTables,text);
  190.    listBD->setEnabled(true);
  191.    listTables->setEnabled(true);
  192. }
  193. void dWindow::on_listTables_itemClicked()
  194. {
  195.    listBD->setDisabled(true);
  196.    listTables->setDisabled(true);
  197.    treeResult->setDisabled(true);
  198.    treeResult->clear();
  199.    QListWidgetItem *curitem = listBD->currentItem();
  200.    QListWidgetItem *curitem2 = listTables->currentItem();
  201.    QString text = curitem->text();
  202.    listTables->setDisabled(true);
  203.    mysql.listRows(treeResult,qtrItem,text,curitem2->text(),iconItem);
  204.    listTables->setEnabled(true);
  205.    listBD->setEnabled(true);
  206.    treeResult->setEnabled(true);
  207. }
  208. void dWindow::on_treeResult_itemClicked()
  209. {
  210.    bool ok;
  211.    QString edit = QInputDialog::getText(this, tr("¿Desea editar este valor?"),tr("Valor Actual: ") + treeResult->currentIndex().data(Qt::DisplayRole).toString(),QLineEdit::Normal,treeResult->currentIndex().data(2).toString(),&ok,Qt::Dialog);
  212.    if (ok)
  213.    {
  214.       treeResult->currentItem()->setData(treeResult->currentIndex().column(),Qt::EditRole,edit);
  215.       mysql.editResults(listBD->currentItem()->text(),
  216.                         listTables->currentItem()->text(),
  217.                          qtrItem->data(0,Qt::DisplayRole).toString(),
  218.                          qtrItem->data(treeResult->currentIndex().column(),Qt::DisplayRole).toString(),
  219.                          treeResult->currentItem()->data(0,Qt::DisplayRole).toString(),edit);
  220.    }
  221. }
  222. void dWindow::createTreeResult(const QString &sColumn, int iTotal)
  223. {
  224.     for(int i=0;i<iTotal;i++)
  225.    {
  226.        qtrItem->setIcon(i, iconItem);
  227.        qtrItem->setText(i, QApplication::translate("window", (const char *) sColumn.toLatin1().data(), 0, QApplication::UnicodeUTF8));
  228.     }
  229. }
  230. void dWindow::closeEvent(QCloseEvent *event)
  231. {
  232.    mysql.closeConeccion();
  233.    event->accept();
  234. }
  235.  

main.cpp

Código
  1. #include <QtGui>
  2. #include "window.h"
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.    QApplication app(argc, argv);
  7.    dWindow *win = new dWindow;
  8.    win->show();
  9.        return app.exec();
  10. }

Para compilar, el modo mas sencillo que encontre fue instalar el QT SDK http://qt.nokia.com/downloads/ (LGPL), luego instalar MySQL Server 5.1 (mysql-essential-5.1.55-win32.msi) en la ruta que gustes.

Luego entrar a Qt Command Prompt (si es win vista o 7 como admin).
Código
  1. configure -release -qt-sql-mysql -l mysql -I D:/MySQL/include -L D:/MySQL/lib/opt -static

En mi caso lo tenia instalado en la unidad D con win XP en la ruta MySQL, luego:

Código
  1. mingw32-make

Con eso bastaria para crear el plugin mysql.

Aqui te dejo un ejemplo compilado para windows por si quieres verlo.

http://www.4shared.com/file/RNFigoAz/Mysql.html

Bueno puedes mejorar varias cosas, asi que ahi te lo dejo  :P

Saludos.
56  Programación / Programación C/C++ / Re: programa para operaciones múltiples no me corre en: 25 Marzo 2011, 06:26 am
@halomar supongo que utilizas Turbo C++  por esto:
Código
  1. #include <iostream.h>
Deberias cambiarlo en mi caso te recomendaria Visual C++ 2008-2010, pero existen muchos otros y eso depende de tu gusto.
Para el switch puedes usar tolower o toupper para pasar el caracter a minuscula o mayuscula, o puedes hacerlo manualmente sin usar esas funciones.

Código
  1. switch (oper)
  2.         {
  3.           case 'a':
  4.           case 'A':
  5.           cout<<"la suma de los numeros es: "<<suma=num1+num2;
  6.            break;

Ademas porque usas 'a' o 'A' si en las opciones muestras 'S', tienes que revisar el uso de la sentencia switch que de seguro esta en el libro que usas (si no esta, mejor usa otro libro), al ver como manejas los operadores pienso que deberias volver a leer el libro que usas u otro mejor porque cometes demasiados errores.
Saluos.
57  Programación / Ingeniería Inversa / Re: Curso de Ingeniería Inversa en: 25 Marzo 2011, 06:01 am

 ;-)

Viva CLS  ;D
Saluos.
58  Programación / Ingeniería Inversa / Re: Obtener codigo fuente de un EXE en: 25 Marzo 2011, 05:56 am
Como esta hecho en visual C++ a lo mucho se puede obtener una aproximación del código fuente similar a pseudocódigo, asi que obtener el código fuente esta dificil   :-\

Saluos.
59  Programación / Ingeniería Inversa / Re: me quedao pillado!!!! en: 25 Marzo 2011, 05:50 am
Desde mi punto de vista para analizar un programa en Delphi empezaria con Dede, pero antes me aseguraria de que el programa pueda ser activado ya sea con un numero de serie u otra forma, puesto que en algunos casos solo dejan decargar una demo sin las funciones del programa original y es vano el analizarlo, ya que si se adquiere la licencia es cuando te envian el enlace de descarga del soft original.

Saluos  :P
60  Programación / Ingeniería Inversa / Re: Descubrir serial de Programa Administrativo en: 24 Marzo 2011, 20:50 pm
La serie se guarda en C:\mvw\serie.dat , para ver como se forma el serial se debe llegar aqui:



de ahi puedes obtener el serial correcto para activarlo, sin importar el número de usuarios...



Puedes utilizar la API MessageBox para llegar al punto de comparación, otra forma seria interceptar la lectura de serie.dat buscando el string "serie.dat" en el programa, hay mas métodos, pero si no tienes experiencia lo primero es que leas el curso de Ricardo Narvaja (ollydbg desde 0).
Saluos.
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 41
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines