Enabler.exe Proof Reversing & Moding[Evil Fingers]
0x00 IntroCode:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Enabler.exe Proof Reversing & Moding[Evil Fingers] Author: Sanjar Satsura mail : sanjar [at] xakep [dot] ru www : www.d34dm4st3rs.narod.ru PS_RU : Эту статью я посвящаю своей любимой (к сожалению) бывшей девушке. Маржона знай, ты самая лучшая девушка которую я вообще встречал на свете (и вряд ли еще встречу)... Пока я жив ты всегда будешь в моем сердце.... ///////////////////////////////////////////////////////////////////////////
Сегодня я вам представляю свой мод проги Enabler от EvilFingers.
Программа позволяет активизировать неактивные buttons (кнопки), так что
программа становится главным и опасным врагом шаровар программ=)))
Но используя её я не смог таки коректно ломать shareware проги и мне пришла
идея активизировать дополнительные модули в программе=))
Да заодно изучим все строение проги, и методы активации неактиных элементов...
0x01 Reversing
Итак начнем наш реверс =)) Итак нам понадобятся PEID, IDA PRO, прямые руки,
горячее сердце, и прокачанные мозги...
1 Проводим анализ проги в PEID => итак прога написана на Microsoft Visual Basic 5.0 / 6.0
об этом свидетельствует его сигнатура : 68 DC C7 40 [в секции .text]
2 Далее суем в ИДУ и видим, ой.ё.ё.ёй как следовало ожидать мы имеем дело с навороченным
PI кодом, стало быть все жопа=( НО настоящее реверсеры не сдаются, им мы щас её попробуем
захачить =)))
В архиве (www.d34dm4st3rs.narod.ru/reliases/enabl ... moding.rar) привожу готовую
дамп памяти снятый утилитой Марка Рассиновичв ProcessMonitor в виде тектвой памятки что б легче
было ориентироваться (файл enabler.exe.txt)
итак что нам нужно отсюда:
API функции виртуальной машины VB (MSVBVM60.DLL) обычно их импорт.
WIN API
Можно еще структуру форм зафигачить.
0x02 Proof Reverse Research
Я уже собрал все вышесказанное и привел их файле архива(REVERSE & Moding [ENABLER].txt)
Итак щас я попытаюсь прокоментировать все что описано в файле:
Итак мы экспортировали функцию из библиотеки USER32.EnableWindowCode:Form1 1.2 Command1.Click() //; Это Главная форма. С кнопкой Enable. 0000D094: 28 LitVarI2: 1 0x1 var_C4 //; Переменная 1 0000D099: 04 FLdRfVar var_94 0000D09C: 28 LitVarI2: 5000 0x1388 var_B4 //; Переменная 2 0000D0A1: FE68 ForVar For (counter = start) To (end) //; Вот здесь начинается обычный цикл 0000D0A7: F5 LitI4: 1 0x1 //; Label (Метка) 0000D0AC: 04 FLdRfVar var_94 0000D0AF: FC22 CI4Var 0000D0B1: 5E ImpAdCallI4 USER32.EnableWindow //; Вызов API функции EnableWindow функции из USER32.dll 0000D0B6: 71 FStR4 var_E8 0000D0B9: 3C SetLastSystemError //; типа return if(false) завершения цикла 0000D0BA: 6C ILdRf var_E8 0000D0BD: FD69 CVarI4 var_A4 0000D0C1: FCF6 FStVar var_F8 0000D0C5: 0A ImpAdCallFPR4 DoEvents //;Вызов Events 0000D0CA: 04 FLdRfVar var_94 0000D0CD: FE7E NextStepVar Next (element) 0000D0D3: 0A ImpAdCallFPR4 DoEvents //;Вызов Events 0000D0D8: 28 LitVarI2: 5001 0x1389 var_C4 //; Переменная 0000D0DD: 04 FLdRfVar var_94 0000D0E0: 28 LitVarI2: 10000 0x2710 var_B4 0000D0E5: FE68 ForVar For (counter = start) To (end) //; Еще один цикл for (counter=0;counter<LitVarI2;counter++){ //; counter=start } 0000D0EB: F5 LitI4: 1 0x1 0000D0F0: 04 FLdRfVar var_94 0000D0F3: FC22 CI4Var 0000D0F5: 5E ImpAdCallI4 USER32.EnableWindow //; Вызов API функции EnableWindow функции из USER32.dll 0000D0FA: 71 FStR4 var_E8 0000D0FD: 3C SetLastSystemError //; типа return if(false) завершения цикла 0000D0FE: 6C ILdRf var_E8 0000D101: FD69 CVarI4 var_A4 0000D105: FCF6 FStVar var_F8 0000D109: 0A ImpAdCallFPR4 DoEvents // ;Вызов Events 0000D10E: 04 FLdRfVar var_94 0000D111: FE7E NextStepVar Next (element) 0000D117: 27 LitVar_Missing // ;False 0000D11A: 27 LitVar_Missing 0000D11D: 27 LitVar_Missing 0000D120: F5 LitI4: 0 0x0 // ; return 0; 0000D125: 3A LitVarStr: "Done" // ; Done.. 0000D12A: 4E FStVarCopyObj var_128 0000D12D: 04 FLdRfVar var_128 0000D130: 0A ImpAdCallFPR4 MsgBox() // ;MessageBOX с алертом [Done..] 0000D135: 36 FFreeVar var_128 var_138 var_148 var_168 0000D140: 13 ExitProcHresult // ; Выход из основной функции типа main Form1 1.3 ---- //; Форма MessageBox'a с кнопкой Done.. 0000CFD4: 13 ExitProcHresult //; Выход из подпроцедуры в main
которая и производит активацию не активной кнопки... :Также импортировали API из виртуалтной машины VB (MSVBVM60)Code:Export : USER32.EnableWindow
Import:0x03 ModingCode:MSVBVM60.__vbaExceptHandler ; Функция "согласия" для хэндла VB MSVBVM60.DllFunctionCall ; Вызов фукций из дополнительных dll (Windows=>User32.dll) MSVBVM60.EVENT_SINK_AddRef ; Создать Реферер MSVBVM60.EVENT_SINK_QueryInterface ; производная запросов MSVBVM60.EVENT_SINK_Release ; инициализация MSVBVM60.MethCallEngine ; Метод вызова движка виртуальной машины VB MSVBVM60.rtcDoEvents ; Получение ответа MSVBVM60.rtcMsgBox ; MessageBox на VB MSVBVM60.ThunRTMain ; Активация процедур в main
Итак пришло время модификации программы=)) Зачем нам её модфицировать ? Спросите вы.
Мне чисто нужна была прога которая активизировала бы все что вообще имеется на форме.
А это прога активировала только кнопки, что не так то и удобно для proof shareware (да и нетолько)
crakinga=). Да и потом программа работает лишь в системах от Win98 до WinXP, а вот на Viste, Se7en
да и на всех виндах выше NT 5.2.2 выдает многочесленные ошибки, даже на сборках типа BlackOS вылетает
BSOD! Да жопа не сравненая =( Но что стоит proof реверсеру "хакнуть" это убожество так чтобы народу
стало жить легче=))
Выложу уже готовый мод (enabler_moded[UPX].exe) в том же архиве. Прога активирует все что вообще возможно,
да и пашет на всех виндах, + вчера (14.02.10) оптимизировал работу с памятью и стеком %-)
Юзайте на здоровьице, кому надо может сам отреверсить прогу, по своему усмотрению. (Чтобы не терялись:
упаковал его FSG от Dulek/xt).
0x04 Заключение (outro)
Вот и все насегодня , еще один день подошел к концу, еще один реверс, да и жизнь сократилась на 1 год=)
В этой статье я привел подробный реверс проги Enabler от EvilFingers, показал метод организации программы,
да и выложил готовый крутой новомотченный экзешник %)
Теперь и вы имеете смертельное оружие от shareware (и нетолько, по данным моей статистики : более 85-87%
программных защит можно сломать имеено таким образом), которым нехгрех воспользоваться=))
Ps1: В руках искусного мастера даже ложка - смертельное оружие.
Ps2: Больше всего удар сильнее когда он не ординарен (Маслите свободнее)
Ps3: Крекинг не преступление. Это лишь форма выражения гениальных мыслей.
0x05 Законы, ух уж эти законы...
За не законное использование этой статьи я никакой ответственности не несу !!
Да, и ребятки кто вас осудит если вы сломаете программу только для личного использования ?!
Правильно, никто ! Но неследует углубляться и ломать все подряд (хотя это и нетакое уж плохое дело=)))
0x06 Greetzzz, Fuckzzz, etc...
My Gr33tzzz : OPEN RCE, EvilFingers, my l0v3r g1rlfr13nd
Fuckzzz : =)), Sh4r3w4r3 Pr0gr4mm, Oth3r Stup1d B0ts
Отдельное огромное спасибо Mackmudov'у Azam {prezident} он знает за что =))...



Reply With Quote
Thanks
