середу, 30 березня 2016 р.

Як я хакнув illuminated cloud плаґін до Intellij Idea

Один з моїх джуніків показав мені прикольний плаґін, який дозволяє робити контрол-клік, це та фіча, якої мені вічно бракувало в Force.com IDE ( екліпсі для сейлзфорса ), так само її немає в Mavensmate плаґіні до саблайма.
Єдина проблема була в тому, що той плаґін був платний, і що давав 30 днів пробного періоду, а за такий короткий час той плаґін навіть не розпробуєш.
Тому я зацікавився найперше, як цей плаґін визначає, що закінчився термін пробного періоду.
Пробував шукати в реєстрі ключі з ім'ям або текстом Illuminated, не знайшов нічого. Потім методом проб і помилок знайшов папку .IdeaIC2016\config\plugins\IlluminatedCloud\lib\TurboActivate і знайшов там TurboActivate.dat і TurboActivate.dll.
Також після того я знайшов одну статтю, де один чувак пише про те, як обійти захист TurboActivate http://www.manhunter.ru/underground/683_issledovanie_zaschiti_programmi_letasoft_sound_booster.html і, хоча я зовсім не знаю асемблера, вирішив спробувати скачати IDA і пошукати там значення, яке відповідає за визначення, чи ліцензія активна, чи ні. Однак в мене виникли проблеми з тим, що я скачав 32-бітну версію IDA і нею я міг патчити тільки 32-бітну бібліотеку TurboActivate.dll, а мій плаґін використовував, вочевидь, 64-бітну версію цієї бібліотеки, тому навіть після того, як я хакнув TurboActivate.dll, мені далі вискакувало повідомлення, що залишилося 8 днів пробного періоду. Тоді я спробував взагалі видалити 64-бітну версію цієї бібліотеки разом з папкою.
Помилка, що виникла при наступному запуску ідешки
Caused by: java.lang.Error: The system cannot find the path specified.
    at com.sun.jna.Native.open(Native Method)
    at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:171)
    at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:398)
    at com.sun.jna.Library$Handler.<init>(Library.java:147)
    at com.sun.jna.Native.loadLibrary(Native.java:412)
    at com.sun.jna.Native.loadLibrary(Native.java:391)
    at turboactivate.TurboActivateNative.<clinit>(SourceFile:1113)
    at turboactivate.TurboActivate.SetCustomProxy(SourceFile:763)
    at com.illuminatedcloud.intellij.license.LicenseValidator.configureProxy(SourceFile:141)
    at com.illuminatedcloud.intellij.license.LicenseValidator.validateLicense(SourceFile:76)
    at com.illuminatedcloud.intellij.parser.ApexParserDefinition.<init>(SourceFile:38)
наштовхнула мене на іншу думку. А навіщо мені взагалі лізти в ту бібліотеку і асемблер, якщо можна просто відключити на рівні класу LicenseValidator? Я розпакував джарку, знайшов байткод класу LicenseValidator, дизасемблював його за допомогою цього сайту: http://www.javadecompilers.com/, замінив його код на такий, що повертає завжди тру на запит про те, чи пакет ліцензований, і який навіть не шукає і не запускає бібліотеки TurboActivate. Зробив проект в екліпсі, скомпілював його, перемістив скомпільовану версію цього класу в джарку, запустив інтеліджей айдію - вуаля, все працює, набридливе повідомлення про те, що залишилося 8 днів пробного періоду, зникло. Ура!

суботу, 26 березня 2016 р.

Нарешті Я Salesforce.com Force.com Certified Advanced Developer


Нарешті я отримав звання Salesforce.com Force.com Certified Advanced Developer, поки я був у лікарні.
Ура! Я так довго чекав цього !!!!!!

Шановний Богдан Довгань,

Вітаємо! Ви успішно завершили сертифікаційний іспит, щоб отримати звання Salesforce.com Force.com Certified Advanced Developer. Ласкаво просимо в світову спільноту сертифікованих фахівців Salesforce.com !

Ім'я здавача іспиту: Богдана Довгань
Іспит: Salesforce Завдання на програмування для сертифікації - Adv Dev (SU15) (30 жовтня)
Результат: ЗДАВ
Дата завершення: 03/17/2016






вівторок, 8 березня 2016 р.