+ Ответить в теме
Страница 2 из 2
ПерваяПервая 1 2
Показано с 41 по 54 из 54
  1. #1
    Аватар для vGhost vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка Почетный гражданин
    Сообщений
    4,037
    Поблагодарили 1,211 раз(а) в 865 сообщениях

    Необратимая компиляция событий.

    Недавно я выкладывал видео о том, как можно в DS3:
    1) защитить свой исходный код от декомпиляторов
    2) использовать вставки кода на СИ чтоб можно было реализовать любые WinApi вызовы или даже подключать любые сторонние DLL
    (тем кто не видел: http://community.develstudio.org/showthread.php?t=13930 и http://community.develstudio.org/showthread.php/13928 )

    Небольшое обновение: http://community.develstudio.org/sho...l=1#post127111


    А теперь я расскажу что изменить в DS и как сделать у себя в DS такое же.

    1) сделать бекап своей DS.

    2) нужно скачать и установить на комп Microsoft Visual Studio 9.0 (2008) дистрибутив висит 90мб, после установки 300мб. Гугл в помощь.

    3) скачать php-to-zephir: http://vghost.me/downloads/php-to-zephir.zip и распаковать архив на c:\php-to-zephir или в любое другое место но чтоб в путях не было пробелов или скобочек.

    4) во всех батниках в папке php-to-zephir из третьего пункта поменять все пути на пправильные к установленной Microsoft Visual Studio 9.0
    "все" это:
    C:\php-to-zephir\bin\nmakeme.bat
    C:\php-to-zephir\phalcon\zephir\bin\zephir.bat

    5) убедиться что у вас есть файлы:
    C:\Program Files (x86)\Windows Kits\8.1\bin\x86\mc.exe
    C:\Program Files (x86)\Windows Kits\8.1\bin\x86\mt.exe
    они ставятся с какой то срредой разработки вроде как, если нету я поищу откуда они у меня взялись и напишу где взять.

    6) создать файл C:\Program Files (x86)\DevelStudio 3.0 beta\system\modules\msvc.php в кодировке cp1251 следующего содержания:
    PHP код:
    <?php

    function C_CODE_BLOCK_START($str)
    {
        
    pre("CИ КОД не будет выполнен в режиме зпуска программы, нажмите собрать прогррамму чтоб его скомпилировать\n---------------------------------------------\n" $str);
    }
    function 
    getGlobal($name)
    {
        return 
    $GLOBALS[$name];
    }
    function 
    setGlobal($name$value)
    {
        
    $GLOBALS[$name] = $value;
    }
    Последний раз редактировалось vGhost; 29.07.2016 в 16:37.
    - У тебя бывают приступы лени?
    - У меня бывают приступы активности, лень у меня постоянно.

  2. 3 пользователя(ей) сказали cпасибо:

    Byfoxfak1337 (27.07.2016), CSS-Gamer (25.07.2016), Xset (25.07.2016)

  3. #41
    Аватар для Byfoxfak1337 Byfoxfak1337 Вообще от рук отбился Прохожий
    Сообщений
    95
    Поблагодарили 2 раз(а) в 2 сообщениях
    Все работает шикарно, пасибки ^^

  4. #42
    Аватар для xSlasher xSlasher Очень опасный тип xSlasher Очень опасный тип xSlasher Очень опасный тип xSlasher Очень опасный тип xSlasher Очень опасный тип xSlasher Очень опасный тип Прохожий
    Сообщений
    56
    Поблагодарили 10 раз(а) в 9 сообщениях
    Ах ты пёс, как я твои проекты буду ломать :с

  5. #43
    Аватар для vGhost vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка vGhost В каждой бочке затычка Почетный гражданин
    Сообщений
    4,037
    Поблагодарили 1,211 раз(а) в 865 сообщениях
    Небольшое обновление:

    http://prntscr.com/bz1dj0

    PHP код:
    <?php
                $code 
    substr(file_get_contents($file), 3);
                
    preg_match_all('#class ([\w_0-9]+)\{#i'$code$matchPREG_OFFSET_CAPTURE);
                
    $new_code "<?php\n";
                
    $headers = array();
                
    $libs '';
                foreach (
    $match[1] as $key => $m) {
                    
    $new_code .= 'namespace AppEvents { if (!class_exists("\\AppEvents\\\\' $m[0] . '")) { class ' $m[0] . " {} } }\n";
                    
    $new_code .= 'namespace { class ' $m[0] . ' extends AppEvents\\' $m[0] . " {} }\n";

                    
    $class_code "<?php\nnamespace Appevents;\n" substr($code$m[1] - 6, isset($match[0][$key 1]) ? ($match[0][$key 1][1] - $m[1] + 6) : 0xffffff);
                    
    $class_code =  iconv('cp1251''UTF-8//TRANSLIT//IGNORE'$class_code);
                    if (
    preg_match_all('#/\*C_HEADER_START(.+)C_HEADER_END\*/#Us'$class_code$match_heders)) {
                        
    $headers[$m[0]] = $match_heders;
                        foreach (
    $match_heders[0] as $str) {
                            
    $class_code str_replace($str''$class_code);
                        }
                    }
                    if (
    preg_match_all('#//\s*EXTRA LIBS\:\s*(.+)#'$class_code$match_libs)) {
                        foreach (
    $match_libs[1] as $v) {
                            
    $libs .= ' ' trim($v);
                        }
                    }
                    
    file_put_contents($class_src_dir $m[0] . '.php'$class_code);
                }
                
    // подменяем код бкомпилеру на заглушки
                
    file_put_contents($file$new_code);

                
    // конвертируем php в zephir
                
    $result_log .= `$ptz_cmd  phpToZephir:convert "$class_src_dir" 2>&1`;

                
    // обрабатываем некоторые несовместимости, а также сишные вставки кода
                
    foreach ($match[1] as $key => $m) {
                    
    $zep_code file_get_contents($class_conv_dir 'Appevents/appevents/' $m[0] . '.zep');
                    
    $zep_code str_replace(array('static function''C_CODE_BLOCK_START("''C_CODE_BLOCK_END");'), array('public static function''%{''}%'), $zep_code);
                    if (isset(
    $headers[$m[0]])) {
                        
    $zep_code "\n%{\n" implode("\n"$headers[$m[0]][1]) . "\n}%\n\n\n" $zep_code;
                    }
                    
    file_put_contents($zep_prj_dir 'appevents/' $m[0] . '.zep'$zep_code);
                }

                
    chdir($zep_prj_dir);
                
                
    $result_log .= `$zep_cmd compile 2>&1`;

                
    // в старых версиях зефира есть баг не понимает cp1251, а новые не совместимы со старым пхп
                
    foreach ($match[1] as $key => $m) {
                    
    $file_zepc $zep_prj_dir 'ext/appevents/' $m[0] . '.zep.c';
                    
    $content iconv('UTF-8''CP1251//TRANSLIT//IGNORE'file_get_contents($file_zepc));
                    
    file_put_contents($file_zepc$content);
                }

                
    // добавляем доп. библиотеки
                
    $libs trim($libs);
                if (
    $libs && preg_match_all('#[\w.]+#'$libs$m)) {
                    
    $mkfile_str file_get_contents($prg_ext_dir 'Makefile');
                    
    $mkfile_str str_replace('LIBS=''LIBS=' implode(' 'array_unique($m[0])) . ' '$mkfile_str);
                    
    file_put_contents($prg_ext_dir 'Makefile'$mkfile_str);
                }

                
    $result_log .= "\n---------------------------------------------------------------------------------------------------------\n";
                
    $result_log .= `$nmake_cmd $prj_drive $prg_ext_dir 2>&1`;
    Требудется для того чтоб можно было немного модифицировать конфиг сборки приложения (Makefile) при подключении дополнительных библиотек
    Пример кода в котором это используется(скриншотер через Device Context ): http://vghost.me/files/ScreenShotDCDemo.htm
    Последний раз редактировалось vGhost; 29.07.2016 в 17:00.
    - У тебя бывают приступы лени?
    - У меня бывают приступы активности, лень у меня постоянно.

  6. #44
    Аватар для Xset Xset Не известно кто Прохожий
    Сообщений
    69
    Поблагодарили 7 раз(а) в 6 сообщениях
    Цитата Сообщение от vGhost Посмотреть сообщение
    В нём надо будет заменить myFunc1($i); на ___ev_form1_myfunc1::onexecute($i);
    Не могли бы Вы скинуть свой способ перевода кода? Ну т.е compile.phb с исправлениями.

  7. #45
    Аватар для Cude2 Cude2 Восходящая звезда Cude2 Восходящая звезда Новичок
    Сообщений
    12
    Поблагодарили 1 раз в 1 сообщении
    Ссылка http://vghost.me/downloads/php-to-zephir.zip не работает.
    Кто успел скачать, скиньте пожалуйста
    cude@bk.ru

  8. #46
    Аватар для Byfoxfak1337 Byfoxfak1337 Вообще от рук отбился Прохожий
    Сообщений
    95
    Поблагодарили 2 раз(а) в 2 сообщениях
    Бл перезалейте плыз! а то вгост нищем немног стал!

  9. #47
    Аватар для Cude2 Cude2 Восходящая звезда Cude2 Восходящая звезда Новичок
    Сообщений
    12
    Поблагодарили 1 раз в 1 сообщении
    Сразу говорю, если проект уровня повыше чем hello world, будут проблемы.
    Сам экзотический косяк, на котором я встрял, это неправильная работа с float. Решить конечно можно если постараться, но я к тому времени уже зае**ался косяки совместимости править и забил. Исходников моего проекта на пол мегабайта, недели две пытался его на зефир перевести.

    По сути зефир просто генерирует php модуль, функции которого можно вызывать в проекте.

    php_to_zephir: https://cloud.mail.ru/public/8w2v/V5QGPDFvw . Пароль на архив: 123
    пример 1: https://cloud.mail.ru/public/A38n/vKP8ERiTc
    примеры 2: https://cloud.mail.ru/public/AfTX/92FmhQgqs
    Последний раз редактировалось Cude2; 23.04.2017 в 22:45.
    Disk Revival - блокировка медленных секторов на жестком диске.

  10. Пользователь сказал cпасибо:

    Byfoxfak1337 (18.03.2017)

  11. #48
    Аватар для Byfoxfak1337 Byfoxfak1337 Вообще от рук отбился Прохожий
    Сообщений
    95
    Поблагодарили 2 раз(а) в 2 сообщениях
    Топовый пароль

  12. #49
    Аватар для Cude2 Cude2 Восходящая звезда Cude2 Восходящая звезда Новичок
    Сообщений
    12
    Поблагодарили 1 раз в 1 сообщении
    пароль - это защита от антивирусов, чтобы не сканили

  13. #50
    Аватар для Xset Xset Не известно кто Прохожий
    Сообщений
    69
    Поблагодарили 7 раз(а) в 6 сообщениях
    Цитата Сообщение от Cude2 Посмотреть сообщение
    Сразу говорю, если проект уровня повыше чем hello world, будут проблемы.
    Метод работает отлично с маленькими программками, например, создавал программку для работы с зашифрованными файлами из одной игрушки.

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

    https://yadi.sk/d/R4j3VBW335HcrK
    вот примерчик

  14. #51
    Аватар для Byfoxfak1337 Byfoxfak1337 Вообще от рук отбился Прохожий
    Сообщений
    95
    Поблагодарили 2 раз(а) в 2 сообщениях
    Вот проект в зефире - Клик.
    Но есть одно но! тут работает любой код(который в дс).
    Отпишитесь норм али как!

    Говорю сразу метод смешной! но вроде как рабочий!
    - через дамп ломается файл.
    Последний раз редактировалось Byfoxfak1337; 19.03.2017 в 09:23. Причина: ---

  15. #52
    Аватар для Xset Xset Не известно кто Прохожий
    Сообщений
    69
    Поблагодарили 7 раз(а) в 6 сообщениях
    Цитата Сообщение от Byfoxfak1337 Посмотреть сообщение
    Вот проект в зефире - Клик.
    Но есть одно но! тут работает любой код(который в дс).
    Отпишитесь норм али как!

    Говорю сразу метод смешной! но вроде как рабочий!
    - через дамп ломается файл.
    зачем ты его в спуне то склеил? если он в зефире, то его уже никак не декомпилировать

  16. #53
    Аватар для Byfoxfak1337 Byfoxfak1337 Вообще от рук отбился Прохожий
    Сообщений
    95
    Поблагодарили 2 раз(а) в 2 сообщениях
    Цитата Сообщение от Xset Посмотреть сообщение
    зачем ты его в спуне то склеил? если он в зефире, то его уже никак не декомпилировать
    "Говорю сразу метод смешной!".

  17. #54
    Аватар для Няшик Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Няшик Кумир Живу я здесь
    Сообщений
    1,698
    Поблагодарили 216 раз(а) в 191 сообщениях
    Цитата Сообщение от xSeт Посмотреть сообщение
    Обращаться по номеру - vk.com/proggram
    А я то думаю кто это. А это опять, спустя пол года вернулся облупленный.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения