logi sisse meist KKK

Tere! Mure siis selline, et GetModuleHandleA funktsioon ei tagasta DWORD aadressi, mille ta peaks tagastama.

Target: SpiderSolitaire.exe+93090 ( base address) offset1: 0x8C offset2: 0x10

huvi siis see, et spidersolitaires muuta score väärtust

Eesmärk õppida.

Praegune DLL-i kood siis selline:

#include "stdafx.h"
#include <windows.h>
#include <iostream>

void OrXHThread (){
    Sleep(3000);
    float var = 2500;
    while(1){
        if(GetAsyncKeyState(VK_F11) &1){
            char bf[32];
            var++;
            sprintf_s(bf, "Running, current value: %i", var);
            MessageBoxA(0, bf ,"Running",0);
                while(1){
                        DWORD base = (DWORD)GetModuleHandleA("SpiderSolitaire.exe");
                        *(float*)(base + 0x93090 + 0x8C + 0x10) = var;                        
                    if(GetAsyncKeyState(VK_F12) &1){break;}
                    Sleep(5);
                }
        }
    Sleep(1);
    }
}

BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved ) {
    DisableThreadLibraryCalls(hDll);
    if ( dwReason == DLL_PROCESS_ATTACH ) {
        MessageBoxA(0,"Written By OrX ","Team Estonia", 0); 
        CreateThread(0, 0, (LPTHREAD_START_ROUTINE)OrXHThread, 0, 0, 0);
    }
    return true ;
}
This küsimus is marked "community wiki".

küsitud Jul 17 '11 at 23:15

OrX's gravatar image

OrX
1111

silt muudetud Aug 03 '11 at 13:38

dig's gravatar image

dig
17415


Minu meelest ei luba GetModuleHandle dokumentatsioon, et tagastatav väärtus peaks olema aadress, millega saab viidaaritmeetikat teha.

Pide (ingl handle) on tavaliselt mingi abstraktne läbipaistmatu väärtus, millel ei tarvitse olla mingit välismaailma jaoks mõistetavat tähendust peale selle, et tema kaudu saab uuesti API poole pöördudes identifitseerida sama objekti.

Kui vaadata lisaks GetModuleHandleEx dokumentatsiooni, siis torkab silma, et selle abil on võimalik teisendada mooduli aadress selle pidemeks. Kui pideme väärtus olekski aadress, poleks sellise teisenduse järele ju mingit vajadust.

link

vastatud Jul 19 '11 at 12:26

Ahto%20Truu's gravatar image

Ahto Truu ♦♦
6596711

GetModuleHandle eeldab, et seda välja kutsuv protsess on vastava nimega mooduli käivitanud.

Tundub, et sa tahad hoopis selle protsessi pidet kätte saada, mis dll-i käivitas, siis tuleb lihtsalt teha GetModuleHandle(NULL).

link

vastatud Jul 19 '11 at 12:59

egon's gravatar image

egon ♦♦
771239

edited Jul 19 '11 at 13:02

See DLL on mõeldud süstimiseks. süstin selle protsessi, ja kätte on vaja saada määratud mooduli pidet. Antud juhul on mooduli nimi SpiderSolitaire.exe ( case sensitive ) . Debuggeriga kontrollisin mooduli nime.

link

vastatud Jul 19 '11 at 19:29

OrX's gravatar image

OrX
1111

Sinu vastus
lülita eelvaade

Jälgi seda küsimust

By Email:

Pärast sisselogimist saad tellida muudatuse teavitusi siit

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *kaldkiri* või __kaldkiri__
  • **paks kiri** või __paks kiri__
  • link:[tekst](http://url.com/ "pealkiri")
  • pilt?![alt tekst](/path/img.jpg "pealkiri")
  • nummerdatud nimekiri: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • põhilised HTML märgendid on samuti toetatud

Pinu tööpakkumised

kõik pakkumised »

Küsimuse sildid:

×3
×1

küsitud: Jul 17 '11 at 23:15

nähtud: 2,736 korda

viimati uuendatud: Aug 03 '11 at 13:38

Litsents: Creative Commons Attribution License | Kontakt: info@pinu.ee