Сейчас на форуме: (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Подскажите по программе
Посл.ответ Сообщение

Ранг: 0.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 ноября 2010 12:55
· Личное сообщение · #1

Здравствуйте, я здесь новенький. Вообщем по существу, есть программа FGSB, для галактики она, написана в delphi 6-7, суть проблемы такова, есть авторитет в галактике, автор сделал так что программа нормально работает если авторитет маленький у пользователя, если же авторитет большой программа просто напросто вылетает с ошибкой, я нашел место вылета в olly dbg. Я приложу скрины программы и код из olly dbg


Address Hex dump Command
005E4EC1 E8 BAFFE1FF CALL 00404E80
005E4EC6 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
005E4EC9 50 PUSH EAX
005E4ECA A1 E0226500 MOV EAX,DWORD PTR DS:[6522E0]
005E4ECF 8B80 F8020000 MOV EAX,DWORD PTR DS:[EAX+2F8]
005E4ED5 8B80 08020000 MOV EAX,DWORD PTR DS:[EAX+208]
005E4EDB BA 03000000 MOV EDX,3

и по другому адресу вот

CPU Disasm
Address Hex dump Command Comments
005E4510 E8 4700E2FF CALL 0040455C
005E4515 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005E4518 8B80 080A0000 MOV EAX,DWORD PTR DS:[EAX+0A08]
005E451E 8B80 84020000 MOV EAX,DWORD PTR DS:[EAX+284]
005E4524 8B10 MOV EDX,DWORD PTR DS:[EAX]

скрины прикрепил с ошибкой.

dump.ru/file/4924800 - сама программа



5190_30.11.2010_CRACKLAB.rU.tgz - безымянный.png



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 30 ноября 2010 13:22
· Личное сообщение · #2

какой пасс на архив?



Ранг: 0.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 ноября 2010 13:23 · Поправил: blacklabel
· Личное сообщение · #3

in-gala.com сорри забыл дописать. Ключи которые нужно будет вводить в программе могу скинуть в аськи 769088




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 30 ноября 2010 14:43 · Поправил: Crawler
· Личное сообщение · #4

смотри, что у тебя в EAX после 005E4ECA A1 E0226500 MOV EAX,DWORD PTR DS:[6522E0]. Там НОЛЬ, а должен быть какой-то адрес.

Очевидно, что значение испорчено - где-то либо не положено в стек , либо не записано в память.

Этот вывод я сделал, т.к. после MOV EAX,DWORD PTR DS:[EAX+2F8] в регистре ноль.



005E4ECF 8B80 F8020000 MOV EAX,DWORD PTR DS:[EAX+2F8] << в ячейке EAX+2F8 НОЛЬ!
005E4ED5 8B80 08020000 MOV EAX,DWORD PTR DS:[EAX+208] << прибавляем смещение к НУЛЮ!


сейчас не могу посмотреть, т.к. олли под рукой нет. Но копай в этом направлении. Протрассируй вызов перед этим участком кода (зайди внутрь 005E4EC1 E8 BAFFE1FF CALL 00404E80, например). Выясни, где теряется значение.

Если в терминах C++, то здесь указатель на указатель на значение

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




Ранг: 0.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 ноября 2010 14:51 · Поправил: blacklabel
· Личное сообщение · #5

так дело в том что в двух адресах вылетает ошибка, если проходит один адрес, закрывается на втором, сейчас проверю этот момент

программа должна обходить этот адрес, т.к. в нем как раз таки получается переполнение стека, и вылет из программы.


 eXeL@B —› Вопросы новичков —› Подскажите по программе
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати