![]() |
eXeL@B —› Вопросы новичков —› убрать или найти пасс для открытия(распаковки/дешифрования) файлов |
Посл.ответ | Сообщение |
|
Создано: 07 ноября 2008 19:19 · Личное сообщение · #1 сам студент, препод дал прогу тестер знаний, суть в том что открывает фалик с выбраной темой, в нем вопросы и ответы (формат файла у проги свой, ну и он не тхт и как-то шифруется вроде). в комплекте есть также мейкер этих самых тестов, его то я и разбирал... задача минимум: найти пасс или найти нужный Jxx переход задача максимум: привести фалы тестов в читабельный вид... проделанное: сам я в крекинге совсем новичек пока-что... но кое до чего смог додуматься. програмулина оказалась упакована ASPack'ом 2.12 версии, после чего вторичная проверка PEiD'ом показала что написана была в дельфе 4 или 5... разобратся в каше сложно, но чучуть поколупав нашел MessageBoxA который выскакивает если ввести не правильный пасс на уже существующий тест (это было самым легким OllyDbg -> bpx MessageBoxA) листав вверх нарыл пару тройку непонятных переходов (в програмулине их наврено сотни =) ) думал задача мимимум достигнута но не тут-то было, переход по большому счету ничего не менял кроме ветви выполнения кода, хоть после замены прехода Nop'ами и выполнялся громоздкий код (в анализе которого я не приуспел) все равно выскакивал MessageBox с сообщением о неверном пасе ( отслеживая вызовы ведущие к этому коду (который непосредственно перед вызовом MessageBox'а и чуть выше) но так и не понял где же сама проверка подленности пассворда.... хитрые манипуляции програмулиной (создание своего теста с заведомо известными пассами темами и тд) показали в дампе памяти что пасы хранятся там в не зашифрованом виде, пытался поставить бп он аксесс, нотак и не понял каким же образом он работает... посмотрев импорт и найдя там LoadStringA и CharNextA подумал что возможно именно этими функции используются для получения введеного значения в поле пасс, но опять же из-за отсутствия опыта не смог разобратся где происходит сравнение и тот ли кусок кода я пытаюсь разобрать.... и еще так и не смог понять для чего используются функции OemToChar и CharToOem... т.к. с winAPI работал совсем мало, в универе только 1 семестр был посвящен системному програмированию (asm+winapi) ну и опять же не смог разобрать принцип работы куска кода где используется ReadFile в общем прошу помощи и совета (в принципе пойдут и советы какие статьи стоит почитать), и наставления на путь истинный.... архив на проги тесты находится здесь dump.ru/file/1191132 зы инструменты OllyDbg,IDApro, PEiD, DieASPack если надо еще что - скажите плз =) ![]() |
|
Создано: 07 ноября 2008 19:44 · Личное сообщение · #2 делай не bpx MessageBoxA, а просто bp MessageBoxA. Когда остановится на бряке, смотри в стеке адрес откуда был вызов. Идешь в эту процедуру и видишь что в ней проверок никаких нет, поэтому ставь бряк на её начало, перезапускай прогу и смотри откуда была вызвана эта процедура. Потихоньку ты дойдешь до нужного условия, а там уж и серийник правильный не проблема найти. Тем более что он одинаков для всех тестов ![]() |
|
Создано: 07 ноября 2008 21:00 · Поправил: Oott · Личное сообщение · #3 |
|
Создано: 07 ноября 2008 23:05 · Личное сообщение · #4 |
|
Создано: 08 ноября 2008 00:03 · Личное сообщение · #5 |
|
Создано: 10 ноября 2008 18:12 · Личное сообщение · #6 за пас спасибо ) теперь пол группы здаст тесты без проблем) скачал цикл 'Введение в крэкинг с нуля, используя OllyDbg' даже из первой главы узнал много полезного ) спасибо за совет! буду продолжать - это интересно =) а по поводу стремления - еще много есть чего крякать) есть и похожие тесты по теории информации и другие есть, и еще будут =) ![]() |
![]() |
eXeL@B —› Вопросы новичков —› убрать или найти пасс для открытия(распаковки/дешифрования) файлов |