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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19
131  Programación / .NET (C#, VB.NET, ASP) / Re: [Ayuda] Memory Scan en: 11 Enero 2011, 02:55 am
Es un juego online llamado GunZ del Servidor IJJI, http://gunz.ijji.com/index.nhn
en el cual en el Lobby dentro del juego hay espacio para escribir lo que deceo hacer esque al poner alguna palabra que yo indique haga tal accion para esto ocupo descubrir primero el address de la direccion donde escribo dicha palabra.
132  Programación / .NET (C#, VB.NET, ASP) / Re: [Ayuda] Memory Scan en: 11 Enero 2011, 01:28 am
Pues hasta ahorita seria mejor lo que es el CheatEngine que esta aqui
133  Programación / .NET (C#, VB.NET, ASP) / Re: Grafico lineal Tiempo Real en: 10 Enero 2011, 19:17 pm
Bueno hace tiempo cree tambien un grafico aunque lo mio fue de barras usando la DLL Zed Graph la cual te permite crear de varios tipos de graficos entre ellas la que tu mencionas bueno aqui te dejo un link que muestra ejemplos y demas:
http://www.recursosvisualbasic.com.ar/htm/vb-net/22-ocx-zed-graph-para-chart.htm

Espero y te sirva.
134  Programación / .NET (C#, VB.NET, ASP) / Re: [Ayuda] Memory Scan en: 10 Enero 2011, 07:43 am
sip, eso lo entiendo, pero lo que yo no se es como obtener el address, ya que el del programa que corro siempre cambia y ya e intentado usando los offsets y ni asi porque como a la tercera ejecucion vuelve a cambiar lo cual me impide y por eso es lo que deceo ver como buscar un texto en la memoria del programa, ya que manejar readprocessmemory si me funciona, pero tarda demasiado y lo que es CheatEngine & ArtMoney no les toma mas de 1 min cosa que no entiendo como lo logran leer la memoria sin que les tome tanto tiempo como a mi :s

Revise el codigo del ejemplo que colocastes y no es lo que busco ya que ahi ya asignan el address sin tener que buscarlo, aun asi gracias seguire leyendo mas sobre el tema aver que encuentro :p
135  Programación / .NET (C#, VB.NET, ASP) / Re: [Ayuda] Memory Scan en: 7 Enero 2011, 22:43 pm
Bueno estuve buscando y leyendo y al final me encontre con este codigo en C al parece, aunque aun no se muy bien utilizarlo, pero lee la memoria mas rapido lo cual si logro entenderlo podria talves usarlo a mi gusto, espero y pueda ayudarme.

Código
  1. #include <windows.h>
  2. #include <stdio.h>
  3.  
  4. #define IS_IN_SEARCH(mb,offset) (mb->searchmask[(offset)/8] & (1<<((offset)%8)))
  5. #define REMOVE_FROM_SEARCH(mb,offset) mb->searchmask[(offset)/8] &= ~(1<<((offset)%8));
  6.  
  7. typedef struct _MEMBLOCK
  8. {
  9.    HANDLE hProc;
  10.    unsigned char *addr;
  11.    int size;
  12.    unsigned char *buffer;
  13.  
  14.    unsigned char *searchmask;
  15.    int matches;
  16.    int data_size;
  17.  
  18.    struct _MEMBLOCK *next;
  19. } MEMBLOCK;
  20.  
  21. typedef enum
  22. {
  23.    COND_UNCONDITIONAL,
  24.    COND_EQUALS,
  25.  
  26.    COND_INCREASED,
  27.    COND_DECREASED,
  28. } SEARCH_CONDITION;
  29.  
  30.  
  31. MEMBLOCK* create_memblock (HANDLE hProc, MEMORY_BASIC_INFORMATION *meminfo, int data_size)
  32. {
  33.    MEMBLOCK *mb = malloc (sizeof(MEMBLOCK));
  34.  
  35.    if (mb)
  36.    {
  37.        mb->hProc = hProc;
  38.        mb->addr = meminfo->BaseAddress;
  39.        mb->size = meminfo->RegionSize;
  40.        mb->buffer = malloc (meminfo->RegionSize);
  41.        mb->searchmask = malloc (meminfo->RegionSize/8);
  42.        memset (mb->searchmask, 0xff, meminfo->RegionSize/8);
  43.        mb->matches = meminfo->RegionSize;
  44.        mb->data_size = data_size;
  45.        mb->next = NULL;
  46.    }
  47.  
  48.    return mb;
  49. }
  50.  
  51. void free_memblock (MEMBLOCK *mb)
  52. {
  53.    if (mb)
  54.    {
  55.        if (mb->buffer)
  56.        {
  57.            free (mb->buffer);
  58.        }
  59.  
  60.        if (mb->searchmask)
  61.        {
  62.            free (mb->searchmask);
  63.        }
  64.  
  65.        free (mb);
  66.    }
  67. }
  68.  
  69.  
  70. void update_memblock (MEMBLOCK *mb, SEARCH_CONDITION condition, unsigned int val)
  71. {
  72.    static unsigned char tempbuf[128*1024];
  73.    unsigned int bytes_left;
  74.    unsigned int total_read;
  75.    unsigned int bytes_to_read;
  76.    unsigned int bytes_read;
  77.  
  78.    if (mb->matches > 0)
  79.    {
  80.        bytes_left = mb->size;
  81.        total_read = 0;
  82.        mb->matches = 0;
  83.  
  84.        while (bytes_left)
  85.        {
  86.            bytes_to_read = (bytes_left > sizeof(tempbuf)) ? sizeof(tempbuf) : bytes_left;
  87.            ReadProcessMemory (mb->hProc, mb->addr + total_read, tempbuf, bytes_to_read, (DWORD*)&bytes_read);
  88.            if (bytes_read != bytes_to_read) break;
  89.  
  90.            if (condition == COND_UNCONDITIONAL)
  91.            {
  92.                memset (mb->searchmask + (total_read/8), 0xff, bytes_read/8);
  93.                mb->matches += bytes_read;
  94.            }
  95.            else
  96.            {
  97.                unsigned int offset;
  98.  
  99.                for (offset = 0; offset < bytes_read; offset += mb->data_size)
  100.                {
  101.                    if (IS_IN_SEARCH(mb,(total_read+offset)))
  102.                    {
  103.                        BOOL is_match = FALSE;
  104.                        unsigned int temp_val;
  105.                        unsigned int prev_val = 0;
  106.  
  107.                        switch (mb->data_size)
  108.                        {
  109.                            case 1:
  110.                                temp_val = tempbuf[offset];
  111.                                prev_val = *((unsigned char*)&mb->buffer[total_read+offset]);
  112.                                break;
  113.                            case 2:
  114.                                temp_val = *((unsigned short*)&tempbuf[offset]);
  115.                                prev_val = *((unsigned short*)&mb->buffer[total_read+offset]);
  116.                                break;
  117.                            case 4:
  118.                            default:
  119.                                temp_val = *((unsigned int*)&tempbuf[offset]);
  120.                                prev_val = *((unsigned int*)&mb->buffer[total_read+offset]);
  121.                                break;
  122.                        }
  123.  
  124.                        switch (condition)
  125.                        {
  126.                            case COND_EQUALS:
  127.                                is_match = (temp_val == val);
  128.                                break;
  129.                            case COND_INCREASED:
  130.                                is_match = (temp_val > prev_val);
  131.                                break;
  132.                            case COND_DECREASED:
  133.                                is_match = (temp_val < prev_val);
  134.                                break;
  135.                            default:
  136.                                break;
  137.                        }
  138.  
  139.                        if (is_match)
  140.                        {
  141.                            mb->matches++;
  142.                        }
  143.                        else
  144.                        {
  145.                            REMOVE_FROM_SEARCH(mb,(total_read+offset));
  146.                        }
  147.                    }
  148.                }
  149.            }
  150.  
  151.            memcpy (mb->buffer + total_read, tempbuf, bytes_read);
  152.  
  153.            bytes_left -= bytes_read;
  154.            total_read += bytes_read;
  155.        }
  156.  
  157.        mb->size = total_read;
  158.    }
  159. }
  160.  
  161.  
  162.  
  163. MEMBLOCK* create_scan (unsigned int pid, int data_size)
  164. {
  165.    MEMBLOCK *mb_list = NULL;
  166.    MEMORY_BASIC_INFORMATION meminfo;
  167.    unsigned char *addr = 0;
  168.  
  169.    HANDLE hProc = OpenProcess (PROCESS_ALL_ACCESS, FALSE, pid);
  170.  
  171.    if (hProc)
  172.    {
  173.        while (1)
  174.        {
  175.            if (VirtualQueryEx (hProc, addr, &meminfo, sizeof(meminfo)) == 0)
  176.            {
  177.                break;
  178.            }
  179. #define WRITABLE (PAGE_READWRITE | PAGE_WRITECOPY | PAGE_EXECUTE_READWRITE | PAGE_EXECUTE_WRITECOPY)
  180.            if ((meminfo.State & MEM_COMMIT) && (meminfo.Protect & WRITABLE))
  181.            {
  182.                MEMBLOCK *mb = create_memblock (hProc, &meminfo, data_size);
  183.                if (mb)
  184.                {
  185.                    mb->next = mb_list;
  186.                    mb_list = mb;
  187.                }
  188.            }
  189.            addr = (unsigned char*)meminfo.BaseAddress + meminfo.RegionSize;
  190.        }
  191.    }
  192.  
  193.    return mb_list;
  194. }
  195.  
  196.  
  197. void free_scan (MEMBLOCK *mb_list)
  198. {
  199.    CloseHandle (mb_list->hProc);
  200.  
  201.    while (mb_list)
  202.    {
  203.        MEMBLOCK *mb = mb_list;
  204.        mb_list = mb_list->next;
  205.        free_memblock (mb);
  206.    }
  207. }
  208.  
  209. void update_scan (MEMBLOCK *mb_list, SEARCH_CONDITION condition, unsigned int val)
  210. {
  211.    MEMBLOCK *mb = mb_list;
  212.    while (mb)
  213.    {
  214.        update_memblock (mb, condition, val);
  215.        mb = mb->next;
  216.    }
  217. }
  218.  
  219.  
  220. void dump_scan_info (MEMBLOCK *mb_list)
  221. {
  222.    MEMBLOCK *mb = mb_list;
  223.  
  224.    while (mb)
  225.    {
  226.        int i;
  227.        printf ("0x%08x %d\r\n", mb->addr, mb->size);
  228.  
  229.        for (i = 0; i < mb->size; i++)
  230.        {
  231.            printf ("%02x", mb->buffer[i]);
  232.        }
  233.        printf ("\r\n");
  234.  
  235.        mb = mb->next;
  236.    }
  237. }
  238.  
  239.  
  240. void poke (HANDLE hProc, int data_size, unsigned int addr, unsigned int val)
  241. {
  242.    if (WriteProcessMemory (hProc, (void*)addr, &val, data_size, NULL) == 0)
  243.    {
  244.        printf ("poke failed\r\n");
  245.    }
  246. }
  247.  
  248. unsigned int peek (HANDLE hProc, int data_size, unsigned int addr)
  249. {
  250.    unsigned int val = 0;
  251.  
  252.    if (ReadProcessMemory (hProc, (void*)addr, &val, data_size, NULL) == 0)
  253.    {
  254.        printf ("peek failed\r\n");
  255.    }
  256.  
  257.    return val;
  258. }
  259.  
  260.  
  261. void print_matches (MEMBLOCK *mb_list)
  262. {
  263.    unsigned int offset;
  264.    MEMBLOCK *mb = mb_list;
  265.  
  266.    while (mb)
  267.    {
  268.        for (offset = 0; offset < mb->size; offset += mb->data_size)
  269.        {
  270.            if (IS_IN_SEARCH(mb,offset))
  271.            {
  272.                unsigned int val = peek (mb->hProc, mb->data_size, (unsigned int)mb->addr + offset);
  273.                printf ("0x%08x: 0x%08x (%d) \r\n", mb->addr + offset, val, val);
  274.            }
  275.        }
  276.  
  277.        mb = mb->next;
  278.    }
  279. }
  280.  
  281.  
  282. int get_match_count (MEMBLOCK *mb_list)
  283. {
  284.    MEMBLOCK *mb = mb_list;
  285.    int count = 0;
  286.  
  287.    while (mb)
  288.    {
  289.        count += mb->matches;
  290.        mb = mb->next;
  291.    }
  292.  
  293.    return count;
  294. }
  295.  
  296.  
  297.  
  298. unsigned int str2int (char *s)
  299. {
  300.    int base = 10;
  301.  
  302.    if (s[0] == '0' && s[1] == 'x')
  303.    {
  304.        base = 16;
  305.        s += 2;
  306.    }
  307.  
  308.    return strtoul (s, NULL, base);
  309. }
  310.  
  311.  
  312. MEMBLOCK* ui_new_scan(void)
  313. {
  314.    MEMBLOCK *scan = NULL;
  315.    DWORD pid;
  316.    int data_size;
  317.    unsigned int start_val;
  318.    SEARCH_CONDITION start_cond;
  319.    char s[20];
  320.  
  321.    while(1)
  322.    {
  323.        printf ("\r\nEnter the pid: ");
  324.        fgets (s,sizeof(s),stdin);
  325.        pid = str2int (s);
  326.        printf ("\r\nEnter the data size: ");
  327.        fgets (s,sizeof(s),stdin);
  328.        data_size = str2int (s);
  329.        printf ("\r\nEnter the start value, or 'u' for unknown: ");
  330.        fgets (s,sizeof(s),stdin);
  331.        if (s[0] == 'u')
  332.        {
  333.            start_cond = COND_UNCONDITIONAL;
  334.            start_val = 0;
  335.        }
  336.        else
  337.        {
  338.            start_cond = COND_EQUALS;
  339.            start_val = str2int (s);
  340.        }
  341.  
  342.        scan = create_scan (pid, data_size);
  343.        if (scan) break;
  344.        printf ("\r\nInvalid scan");
  345.    }
  346.  
  347.    update_scan (scan, start_cond, start_val);
  348.    printf ("\r\n%d matches found\r\n", get_match_count(scan));
  349.  
  350.    return scan;
  351. }
  352.  
  353.  
  354. void ui_poke (HANDLE hProc, int data_size)
  355. {
  356.    unsigned int addr;
  357.    unsigned int val;
  358.    char s[20];
  359.  
  360.    printf ("Enter the address: ");
  361.    fgets (s,sizeof(s),stdin);
  362.    addr = str2int (s);
  363.  
  364.    printf ("\r\nEnter the value: ");
  365.    fgets (s,sizeof(s),stdin);
  366.    val = str2int (s);
  367.    printf ("\r\n");
  368.  
  369.    poke (hProc, data_size, addr, val);
  370. }
  371.  
  372.  
  373. void ui_run_scan(void)
  374. {
  375.    unsigned int val;
  376.    char s[20];
  377.    MEMBLOCK *scan;
  378.  
  379.    scan = ui_new_scan();
  380.  
  381.    while (1)
  382.    {
  383.        printf ("\r\nEnter the next value or");
  384.        printf ("\r\n[i] increased");
  385.        printf ("\r\n[d] decreased");
  386.        printf ("\r\n[m] print matches");
  387.        printf ("\r\n[p] poke address");
  388.        printf ("\r\n[n] new scan");
  389.        printf ("\r\n[q] quit\r\n");
  390.  
  391.        fgets(s,sizeof(s),stdin);
  392.        printf ("\r\n");
  393.  
  394.        switch (s[0])
  395.        {
  396.            case 'i':
  397.                update_scan (scan, COND_INCREASED, 0);
  398.                printf ("%d matches found\r\n", get_match_count(scan));
  399.                break;
  400.            case 'd':
  401.                update_scan (scan, COND_DECREASED, 0);
  402.                printf ("%d matches found\r\n", get_match_count(scan));
  403.                break;
  404.            case 'm':
  405.                print_matches (scan);
  406.                break;
  407.            case 'p':
  408.                ui_poke (scan->hProc, scan->data_size);
  409.                break;
  410.            case 'n':
  411.                free_scan (scan);
  412.                scan = ui_new_scan();
  413.                break;
  414.            case 'q':
  415.                free_scan (scan);
  416.                return;
  417.            default:
  418.                val = str2int (s);
  419.                update_scan (scan, COND_EQUALS, val);
  420.                printf ("%d matches found\r\n", get_match_count(scan));
  421.                break;
  422.        }
  423.    }
  424. }
  425.  
  426.  
  427.  
  428.  
  429. int main (int argc, char *argv[])
  430. {
  431.    ui_run_scan();
  432.    return 0;
  433. }
  434.  
  435.  
  436.  
136  Programación / .NET (C#, VB.NET, ASP) / Re: enviar un datagridview por email c# en: 7 Enero 2011, 22:02 pm
Bueno buscando en google hay formas de convertir un DataTable a Html, por lo que nos facilitara el trabajo ^^
Al final el codigo podria quedarnos asi :P

Código
  1. private void button1_Click(object sender, EventArgs e)
  2.        {
  3.            SqlConnection cn = new SqlConnection("conexi&#243;n");
  4.            SqlDataAdapter cm = new SqlDataAdapter("select invtid,desc,qtyord,precilista,preciomargen from soshipline where shipperid='12345'", cn);
  5.            DataTable dt = New DataTable();
  6.            cm.Fill(dt);
  7.            String datos = ConvertToHtmlFile(dt):
  8.  
  9.            MailMessage msg = new MailMessage();
  10.  
  11.  
  12.            msg.To.Add(new MailAddress("econtreras@hofmann.cl"));
  13.  
  14.            msg.From = new MailAddress("servidor@hofmann.cl");
  15.  
  16.            msg.Subject = "Venta Bajo Margen";
  17.  
  18.            msg.Body = datos;
  19.  
  20.            msg.IsBodyHtml = true;
  21.  
  22.            SmtpClient clienteSmtp = new SmtpClient("smtp.xxxxxxxxxx.cl");
  23.  
  24.  
  25.            // Este es el c&#243;digo nuevo
  26.  
  27.            clienteSmtp.Credentials =
  28.            new NetworkCredential("servidor@hofmann.cl", "xxxxxxxxxxxx");
  29.  
  30.  
  31.  
  32.            try
  33.            {
  34.  
  35.                clienteSmtp.Send(msg);
  36.  
  37.            }
  38.  
  39.            catch (Exception ex)
  40.            {
  41.  
  42.                MessageBox.Show(ex.Message);
  43.  
  44.  
  45.  
  46.            }
  47.        }
  48.  
  49. public static string ConvertToHtmlFile(DataTable targetTable)
  50. {
  51. string myHtmlFile = "";
  52.  
  53.  
  54. if (targetTable == null)
  55. {
  56.  throw new System.ArgumentNullException("targetTable");
  57. }
  58. else
  59. {
  60.  //Continue.
  61. }
  62.  
  63.  
  64. //Get a worker object.
  65. StringBuilder myBuilder = new StringBuilder();
  66.  
  67.  
  68. //Open tags and write the top portion.
  69. myBuilder.Append("<html xmlns='http://www.w3.org/1999/xhtml'>");
  70. myBuilder.Append("<head>");
  71. myBuilder.Append("<title>");
  72. myBuilder.Append("Page-");
  73. myBuilder.Append(Guid.NewGuid().ToString());
  74. myBuilder.Append("</title>");
  75. myBuilder.Append("</head>");
  76. myBuilder.Append("<body>");
  77. myBuilder.Append("<table border='1px' cellpadding='5' cellspacing='0' ");
  78. myBuilder.Append("style='border: solid 1px Silver; font-size: x-small;'>");
  79.  
  80.  
  81. //Add the headings row.
  82.  
  83.  
  84. myBuilder.Append("<tr align='left' valign='top'>");
  85.  
  86.  
  87. foreach (DataColumn myColumn in targetTable.Columns)
  88. {
  89.  myBuilder.Append("<td align='left' valign='top'>");
  90.  myBuilder.Append(myColumn.ColumnName);
  91.  myBuilder.Append("</td>");
  92. }
  93.  
  94.  
  95. myBuilder.Append("</tr>");
  96.  
  97.  
  98. //Add the data rows.
  99. foreach (DataRow myRow in targetTable.Rows)
  100. {
  101.  myBuilder.Append("<tr align='left' valign='top'>");
  102.  
  103.  
  104.  foreach (DataColumn myColumn in targetTable.Columns)
  105.  {
  106.   myBuilder.Append("<td align='left' valign='top'>");
  107.   myBuilder.Append(myRow[myColumn.ColumnName].ToString());
  108.   myBuilder.Append("</td>");
  109.  }
  110.  
  111.  
  112.  myBuilder.Append("</tr>");
  113. }
  114.  
  115.  
  116. //Close tags.
  117. myBuilder.Append("</table>");
  118. myBuilder.Append("</body>");
  119. myBuilder.Append("</html>");
  120.  
  121.  
  122. //Get the string for return.
  123. myHtmlFile = myBuilder.ToString();
  124.  
  125.  
  126. return myHtmlFile;
  127. }
137  Programación / .NET (C#, VB.NET, ASP) / [Ayuda] Memory Scan en: 7 Enero 2011, 07:16 am
Bueno he llevado tiempo en esto y no logro avanzar lo que deceo es poder obtener el value de la memoria de algun proceso, he leido y hecho varios intentos pero no e logrado concretarlo, por lo que he pasado aca a ver si tienen alguna idea de como hacerlo asi como Cheat Engine, que permite buscar un texto en la memoria de los procesos, eso es lo que deceo hacer, lo mas lejos que llegue fue hacerlo con ReadProcessMemory, pero tarda demasiado por lo que si pudiesen ayudarme seria de gran ayuda, tambien si esto se puede hacer en algun otro lenguaje podria ayudarme asi nomas hago que suelte el address de localizacion en un txt. :P

Espero contar con la ayuda de alguno de ustedes ^^

Gracias,
Saludos.

P.D. Feliz dia de Reyes (Para los que lo festejan) :D
138  Programación / PHP / Re: Quiero usar la funcion mail en: 24 Diciembre 2010, 21:42 pm
+1 a phpmailer

Si, la verdad yo prefiero usar este mismo yo a la final use este, y me facilito mas el trabajo :P
139  Programación / .NET (C#, VB.NET, ASP) / Re: Direccionar puerto a una pagina? en: 19 Diciembre 2010, 01:18 am
Bueno creo entender mas no estoy seguro podria ser asi,
como ya te dije NO-IP es un redireccionador o DNS asi mandara a tu IP y si tu IP actualiza este mismo tambien lo hace, ya por ejemplo en mi caso lo registre asi
crymore.sytes.net
lo cual eso redireeciona o me manda a mi IP, ahora solo falta agregarle el puerto y elcomando para que sea abierto y fin
Al final que daria asi para abrir
IP:PUERTO
crymore.sytes.net:801

Código
  1. Process.Start("http://crymore.sytes.net:801/")
  2.  
140  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Cómo pasar archivos desde los recursos de mi aplicación al computador? en: 19 Diciembre 2010, 00:59 am
Aqui un ejemplo

Si el archivo a copiar es una imagen llamemosla "imagen.jpg", al insertarla en recursos solo es imagen y bueno el codigo seria asi

Código
  1. Dim archivo as Byte() = My.Resource.imagen
  2. Dim carpeta as String = Applicattion.Startpath + "\Recursos\"
  3. File.WriteAllBytes(carpeta + "Imagen.jpg",archivo)
  4.  
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines