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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Temas
Páginas: [1] 2
1  Programación / Programación C/C++ / TLS en: 16 Octubre 2011, 17:44 pm
amigoz, quisiera saber acerca de TLS cuando usarlo en que casos me conviene usarlo y como se usa. me han recomendado usarlo pero no se como, quisiera saber mas acerca de la utilidad y de como/cuando aplicarlo, un ejemplo algo, gracias

2  Programación / Programación C/C++ / callbacks dentro de clases en: 10 Octubre 2011, 18:51 pm
estuve trabajando con callbacks pero ahora estaba con otra api de windows que lleva callback (la api es SetTimer), y me lleva a la duda de si los callbacks pueden estar dentro de una clase, o si deben ser static, preguntas como esas...

por ejemplo en este codigo que ya lo compile pero todavia no me anda XD
http://www.codeproject.com/KB/cpp/SetTimer__non-static.aspx

entiendo que no puede usar el callback directamente como static, porque se necesitaria acceder a miembros de clase y si el callback es static no puede, entonces se crea una funcion de "envoltura" para que sea llamada como si fuera el callback y esta funcion llama internamiente al callback que es static. entonces asumo que si puede ir dentro de una clase pero haciendo este truco de disimular el static dentro de una funcion wrapper. y entonces porque es o debe ser static el callback final?





3  Programación / Programación C/C++ / oerador de ambito :: o doble dos puntos en: 10 Octubre 2011, 03:12 am
http://www.zator.com/Cpp/E4_9_19.htm
http://www.hackingballz.com/herramientas/manual-oficial-de-php/language.oop5.paamayim-nekudotayim.html

hola, mirando unos codigos mesurgio una duda sobre un operador que nunca me enseniaron completamente, es el doble dos puntos, por ejemplo en el compilador dentro del main si pongo
"::" sale un cartel con algunas opciones, pero en otros codigos mas precisamente en codigos de clases personalizadas, he visto como se llaman a funciones de windows usando ese operador, quisiera saber para que se hace esto, nunca lo supe  :-[
por ahi es algo tonto pero no me lo enseniaron  :¬¬



Uploaded with ImageShack.us

unos ejemplos que encontree

Código:
bool CAppGetReso::OnInit()
{
    //! Initialize all image handlers.
    ::wxInitAllImageHandlers();

    //~ Initialize all XRC handlers.
    wxXmlResource::Get()->InitAllHandlers();

    //~ Return true to continue processing.
    return(true);
}

Código:
VOID CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime)
{
::EnterCriticalSection(&lock);

if(idEvent == pTimer)
{
KillTimer(NULL, pTimer);
ResumeThread();

}

::LeaveCriticalSection(&lock);
}

otro ejemplo
Código:

class SimpleControl
{
public:
    SimpleControl (HWND hwndParent, int id)
        : _hWnd (GetDlgItem (hwndParent, id))
    {}

    void SetFocus ()
    {
        ::SetFocus (_hWnd);
    }

    // code is the HIWORD (wParam)
    static BOOL IsClicked (int code)
    {
        return code == BN_CLICKED;
    }

    HWND Hwnd () const { return _hWnd; }

    void Enable ()
    {
        EnableWindow (_hWnd, TRUE);
    }

    void Disable ()
    {
        EnableWindow (_hWnd, FALSE);
    }

    void SetFont (HFONT font)
    {
        SendMessage ( Hwnd (), WM_SETFONT, (WPARAM) font, MAKELPARAM(TRUE, 0));
    }
protected:
    HWND _hWnd;
};
4  Programación / Programación C/C++ / como quitar el decorado de symbolos en clases exportadas en: 9 Octubre 2011, 01:41 am
extern "C"
class __declspec(dllexport) Datos
{
public:
          void valorar(int i){val=i;};
private:
          int i;
};

hola estoy tratando de exportar una clase desde una dll para usarla en un programa, lo que qusiera es saber como quito el decoramiento de los exports de la dll ?
ya estuve mirando al respecto http://msdn.microsoft.com/en-us/library/81h27t8c.aspx
pero necesito como quitar el decoramiento de los exports si alguien sabe  :rolleyes:

EI: juntando mensajes.

 :-\ no sabia que no se podia
http://www.codeproject.com/KB/cpp/howto_export_cpp_classes.aspx

segun este informe si se exporta una clase usando vc el programa que la va a usar debe ser compilado con el msmo compilador por la gracia del decoramiento de nombres.

EI: juntando mensajes de nuevo.
alguien que sepa puede explicar esto
http://www.codeproject.com/KB/DLL/classesexportedusingLL.aspx

osea la persona esta importando miembros de una clase externa (que esta en una dll), y para encontrar los nombres de los miembros usa getprocaddress pero los nombres no estan decorados como puede ser ?, si habia leido que la decoracion en una clase no se podia evitar (al menos en visual studio), pero esta persona usa visual studio  :-\

otra pregunta seria si puedo usar getprocaddress de la misma forma que uso esta perzona pero pasandole como argumento el nombre decorado ya que decorado o no es un nombre  :P

espero alguna respuesta  ;-)
5  Programación / Programación C/C++ / como centralizar una aplicacion basada en dialogos en: 7 Octubre 2011, 23:39 pm
tengo una aplicacion basica de winapi32 (grafica), y esta basada en dialogos, pero desde el pimer momento en que creo el dialogo padre, cuando inicio la aplicacion el dialogo padre aparece en una esquina, yo lo quiero centralizado ¿ como debo hacer ?  :-*
aclaro algo, el primer dialogo osea el padre no esta relacionado a ningun otro porque es el primero creado en el main. por eso lo que pregunto es como centralizar el primer dalogo creado
algo busque XD
http://search.cpan.org/~robertmay/Win32-GUI-1.04/docs/GUI/Tutorial/Part1.pod#Centring_the_window_and_the_text

EI: juntando mensajes.

ah esto lo habia descubierto ya, los recursos tienen diversas propiedades, esto del centrado se puede especificar desde el script de recursos y no por programacion. solo se puede por programacion si se trata de una ventana hija  ::)
6  Programación / Programación C/C++ / leer cadena de editbox en: 5 Octubre 2011, 00:03 am
estoy tratando de leer el contenido que se ingresa a un editbox el cual esta en un dialogbox secundario .... encontre este codigo en visual basic que no entiendo muy bien pero trate de pasarlo a c o de entender al menos lo que hace, pero no entiendo como hacer esto aun

Código:
Public Function GetTextBoxLine(hWnd As Long) As String
 'INPUT: hWnd = Handle to text box
 'OUTPUT: Text of specified TextBox Control

 Dim lngLineCount As Long
 Dim lngLineNumber As Long
 Dim lngRet As Long
 Dim lngLen As Long
 Dim lngFirstCharPos As Long
 Dim bytBuffer() As Byte
 Dim strAns As String

 'get number of lines
 lngLineCount = SendMessage(hWnd, EM_GETLINECOUNT, 0, 0&)

 For lngLineNumber = 0 To lngLineCount - 1
 'first character position of the line
 lngFirstCharPos = SendMessage(hWnd, EM_LINEINDEX, lngLineNumber, 0&)

 'length of line
 lngLen = SendMessage(hWnd, EM_LINELENGTH, lngFirstCharPos, 0&)

 ReDim bytBuffer(lngLen) As Byte

 bytBuffer(0) = lngLen

 'text of line saved to bytBuffer
 lngRet = SendMessage(hWnd, EM_GETLINE, lngLineNumber, bytBuffer(0))

 If lngRet Then
 strAns = strAns & Left$(StrConv(bytBuffer, vbUnicode), lngLen)
 End If
 Next

 GetTextBoxLine = strAns
 End Function


asi esta mi aproximacion de codigo pero no es asi me parece

Código:
long lngFirstCharPos = SendMessage(hWnd, EM_LINEINDEX, 0, 0);
int lngLen = SendMessage(hWnd, EM_LINELENGTH, lngFirstCharPos, 0);
chBuffer1[0] = lngLen;
long lngRet = SendMessage(hWnd, EM_GETLINE, 0, chBuffer1);


antes lo habia hecho asi pero tampoco recivia nada

Código:

char chBuffer1[MAX_PATH];//={0};
int t1=SendDlgItemMessage(hWnd, IDC_ART1, EM_GETLINE, 0, (LPARAM)(LPSTR)chBuffer1);//LB_GETSTRING

char asd[12];

sprintf(asd, "%d", t1);

MessageBox(hWnd,chBuffer1,asd,0);

agradezo su ayuda  :)
7  Programación / Programación C/C++ / detectar item de lista con doble click y obtener id de elemento en: 4 Octubre 2011, 21:37 pm


Uploaded with ImageShack.us

esta en la parte de maindialog
Código:
case IDC_LIST2:
switch(HIWORD(wParam))
{
case LBN_SELCHANGE:
{
                                }
                        }

de esta forma detecta si hubo seleccion de items, pero yo quisiera saber de que item se trata, osea necesitaria una ID de elemento o algo que me diga cual elemento se ha seleccionado..

8  Programación / Programación C/C++ / un dialogo dentro de otro en: 4 Octubre 2011, 19:33 pm
hola estoy creando un programa que consta de un dialogbox y tiene dos listbox y algunos botones, lo que quisiera hacer es que al presionar uno de los botones se abra otra ventana de dialogo... mi pregunta seria que funcion debo usar o dialogbox o createdialog y si lo puedo hacer
en la parte adonde detecto la presion del boton7 en el caso de mi codigo, en verdad no se bien adonde hacerlo  :-[
tambien me serviria si alguien tiene algun codigo de ejemplo adonde ya usen dialogos que se abren dentro de otro existente (seria como decir dialogo padre y dialogos hijos), es que no encontre ningun ejemplo y soy iniciado en esto.. solo uso c , es decir no uso mfc  :xD

Código:
INT_PTR CALLBACK DialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
   case WM_COMMAND:
      switch(LOWORD(wParam))
      {
               case IDC_BUTTON7:
{
                         if(  gbCaso == 1 )
                         {

                                /* Puedo crear el dialog box en este lugar al presionarse el boton ? */
                         }
              }
      }
}

en el WinMain

Código:
//creo el dailogo principal
hDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_DIALOG1), 0, (DLGPROC)DialogProc, 0);


EI: juntando mensajes.

XD  era algo facil pense que era mas complicado, con createdialog y luego algo como esto, gracias google  :P

if(g_hSD_d1 != NULL)
{
    ShowWindow(g_hSD_d1, SW_SHOW);
}


y luego se libera desde su propio callback
9  Programación / Programación C/C++ / castiar un thiscall en: 30 Septiembre 2011, 19:53 pm

estoi probando un metodo que encontre en el foro sobre inyectar una struct (de un usario eon)
desde un exe sin dll. la idea mia es ir ahora a inisiar un thread en el momento q esta inyectada la estruct
dada esta struct

struct EstructIny
{
        TipoCT pCT;

        void Func(void)
        {
        }
}

//La función que inyectaremos
DWORD Inyectada ( EstructIny *data)
{
      data->pCT(NULL, 0, (LPTHREAD_START_ROUTINE)data->Func, NULL, 0, NULL);
      return 0;
}

el error es de  compilacion, porque no permite el tercer parametro de createthread no admite o no puede convertir el dato que le paso. como lo puede hacer alguien que sepa mas de c o c++ que yo, porque necesito pasarle ese parametro para que se complete la inyeccion

e tratado de hacer algo asi
DWORD dir = (DWORD)data->Func;

pero dice
Citar
'type cast' : cannot convert from 'void (__thiscall EstructIny::*)(void)' to 'unsigned long'

como puedo hacer entonces ?



10  Programación / Programación General / desensamblador en: 17 Agosto 2011, 01:07 am

me e plateado como actividad educativa tratar de hacer un desensablador basico , no se como acer uno, pero stube buscando informacion , por ejemplo encontre codigos o programas llamados ""disasemler engines"" no se si tiene algo que relasionarse con acer un desemsablador. yo por quisera hacerlo en c, aunque sea basico que reconozca los opcodes basicos y luego traspasarlos a nemonico automaticamnte, pero si alguno ha inentado hacer esto antes, quisiera que me oriente y parte saber lo de los engines que he mencionado, atentamente
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines