Kysymys:
Etsi merkkijono, jonka kirjoitin ollydbg: hen
aclokay
2013-09-16 23:04:42 UTC
view on stackexchange narkive permalink

Sano, että syöttöruutu on ja kirjoitan tekstin. Voinko jotenkin löytää sijainnin, johon teksti kirjoitetaan?

Kolme vastused:
Jason Geffner
2013-09-16 23:13:25 UTC
view on stackexchange narkive permalink

Aseta katkaisupisteet GetWindowText () : lle ja GetDlgItemText () : lle ja anna kohdeohjelman lukea syöteteksti . Jos rikkoutumispiste osuu, voit jäljittää puhelupinon nähdäksesi, mikä koodi lukee syöttötekstiäsi ja missä muistissa se on tallennettu. Jos kumpikaan rikkoutumispiste ei osu, voit yrittää asettaa ehdollisen katkaisupisteen kohtaan SendMessage () , suodattamalla se rikkomaan vain WM_GETTEXT viesti.

Jos yllä olevat menetelmät epäonnistuvat, sinun kannattaa analysoida ohjelmaa staattisesti löytääksesi missä se luo tekstiruutuikkunan ja miten se käsittelee tekstikentän syötettä. Ikkunanluonti-sovellusliittymäkutsujen ja / tai ristiviittausten hakeminen tekstikenttään liittyviin merkkijonoihin (staattiset tunnisteet, virheilmoitusmerkkijonot jne.) Voivat olla hyödyllisiä.

PhoeniX
2013-09-17 03:03:33 UTC
view on stackexchange narkive permalink

Jasonin sanojen lisäksi haluaisin lisätä, että on myös toinen mahdollisesti hyödyllinen tapa:

  • Katkaisupiste ExitProcess () (ja todennäköisesti HeapFree () too)
  • Kirjoita syötekenttään testi - "bla bla bla"
  • etsi prosessin muistista että merkkijono ja yritä analysoida koodia, joka viittaa kyseiseen paikkaan.

Olen samaa mieltä siitä, että tämä voi olla ylitapaus, mutta silti hyödyllinen joissakin tilanteissa.

blabb
2013-09-17 10:39:49 UTC
view on stackexchange narkive permalink

kaikkien yllä olevien ratkaisujen lisäksi, kun olet syöttänyt tekstimerkkijonosi paina f12 ja keskeytä virheenkorjaaja
nyt on olemassa useita vaihtoehtoja etsiä merkkijonoa view call stack ( ctl + k) ja aseta katkaisupiste pinon palautusosoitteeseen ja suorita painamalla f9 - ollydbg todennäköisesti rikkoutuu joissakin järjestelmäkutsuissa
kun se katkeaa voit etsiä prosessin koko muistista
( alt + m napsauttamalla hiiren kakkospainikkeella hakua ctrl + l toistoa varten) kirjoittamallesi merkkijonolle
aseta pääsyn katkaisupiste ( laitteistokatko kohta luettuna) sijainnista, jos sovellus ei ole kovin hämärtynyt puhelupino, saattaa näyttää sovelluskoodin, mihin se tuli, voit myös seurata sieltä
jos sovellus ei ole luokitellut ohjausasetuksia aliluokkaan katkaisupiste windowproc - tai classproc -sivulla saa myös oikean kontekstin seuraamaan merkkijonoa, jos sovellus käyttää directxiä, voit asettaa taukoja SendInpussa t () apis tai DrawText (...) apis



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...