Не могу участвовать во Фрилансе. - страница 3

 
Maksym Mudrakov:
Начал программировать в январе этого года. До этого интересовался форексом, в некоторых моих работах (около 10) я был Заказчиком.

Мысленно мы с тобой. Может еще разбанят через месяцок. Не падай духом.

 

Соглашусь что правила есть правила  и администрация может ставить бан по незнанию правил в том числе, но бан навсегда это жесть... Ладно если бы повторное нарушение, или тяжкое и явно умышленное нарушение (мошенничество, покушение на сайт и т.д.) + это еще когда заказы в работе и без предупреждения (как понимаю)

 
Maksym Mudrakov:

Да, так и есть, сервисдеск мне ответил, что я подал заявку на участие в работе, в которой были декомпилированные файлы. Может кто подскажет как отличить декомпилированный файл от исходного кода? Никогда не занимался декомпиляцией и не знаю как это делать. Надеюсь эта информация будет полезна не только мне, а и другим начинающим программистам.

Заранее благодарен.


В англ части форума есть ветка (эта ветка) по примерно такой же тематике ("Не могу участвовать во Фрилансе"), и там есть переведенный на англ язык пост Дмитрия Федосеева о том, как можно быстро определить декомпил:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Декомпил

Dmitry Fedoseev, 2016.05.20 10:39

По именам переменных и функций. Если не декомпил имена боле-менее со смыслом, а у декомпилов набор букв и цифр разделенный знаком подчеркивания.

Примеры декомпила:

for (l_index_20 = 0; l_index_20 < iConst_14 - 1; l_index_20++) {

      if (iArray2[l_index_20] == iArray2[l_index_20 + 1]) {

         li_32 = iArray2[l_index_20];

         l_index_24 = l_index_20 + 1;

         li_36 = 1;

         ld_12 = l_index_20 + 1;

         while (l_index_24 < iConst_14) {

            if (iArray2[l_index_24] != li_32) break;

            li_36++;

            ld_12 += l_index_24 + 1;

            l_index_24++;

         }

         ld_4 = li_36;

         ld_12 /= ld_4;

         for (int li_28 = l_index_20; li_28 < l_index_24; li_28++) lda_44[li_28] = ld_12;

         l_index_20 = l_index_24;

      }
for (int li_0 = li_12; li_0 >= 0; li_0--) MartAxis(li_0);
   for (li_0 = li_16; li_0 >= 0; li_0--) SmoothOverMart(li_0);
   for (li_0 = li_8; li_0 >= 0; li_0--) {
      for (int l_index_4 = 0; 
      l_index_4 < iConst_14; l_index_4++) iArray1[l_index_4] = (indic_buffer2[li_0 + l_index_4]) * dConst_pipDigits;
      RankPrices(iArray1);
      indic_buffer0[li_0] = SpearmanRankCorrelation(dArray1, iConst_14);
      
      if (indic_buffer0[li_0] > 1.0) indic_buffer0[li_0] = 1.0;
      if (indic_buffer0[li_0] < -1.0) indic_buffer0[li_0] = -1.0;

и этот очень наглядный (обладатель такого кода даже не потрудился хоть немного изменить тут) -

double g_ibuf_156[];
double g_ibuf_160[];
double g_ibuf_164[];
double g_ibuf_168[];
double g_ibuf_172[];
int gi_176 = 0;
int gi_180 = 0;
int gi_188 = 0;
int gi_192 = 0;
int gi_196 = 0;
 

Рано хороните :) Тут уже клуб анонимных декомпеллеров создавать можно и все вроде на свободе. Тока процедуру надо прояснить - может надо сервисдеску написать про 'ябольшенебуду', может срок авторазбана прояснить..

 
Maksym Mudrakov:
типа Li[12] ? такое встречал, показалось для меня странным, но можно ведь и руками такое наделать? А другие признаки есть кроме переменных?

Можно и руками, если это временная  переменная (для одноразового использования) или индекс счетчика (for int i=0;.... ), но обычно человек дает переменным осмысленные названия, или сокращения, что бы из названия переменной можно было понять для чего она предназначена. 

...

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

...

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

 
Sergey Golubev:

Примеры декомпила:


Не самый удачный пример - стиль декомпилятора не полностью выдержан. Префикс имени (перед подчёркиванием) соответствует типу переменной - gda_ это global double array, li_ - local integer итд. А после подчёркивания - порядковый номер вместо имени. Собсно, только так и можно сформулировать главный признак декомпила - номера вместо имён у абсолютного большинства переменных

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

Хоть и не театр здесь, но всё-же вспоминается вечное Станиславского "Не верю...".

 
Maksym Mudrakov:

Да, так и есть, сервисдеск мне ответил, что я подал заявку на участие в работе, в которой были декомпилированные файлы. Может кто подскажет как отличить декомпилированный файл от исходного кода? Никогда не занимался декомпиляцией и не знаю как это делать. Надеюсь эта информация будет полезна не только мне, а и другим начинающим программистам.

Заранее благодарен.


Что-то вы явно не договариваете.

За работу с декомпилом банят (ник зачёркнутый). По крайней мере так было.

Но чтобы точечно ограничили доступ к сервису -- это впервые.

p.s. Да и выполнить 80 работ и не знать как отличить декомпил -- крайне сомнительно -- либо вы вообще не в теме разработок.

 

Я верю, что ТС не виноват. Опыт и знания у всех набираются по разному. Неравномерно. Человек может долго заниматся каким то делом, и при этом не знать о существовании некоторых базовых вещей. В жизни так и случается...

 
Реter Konow:

Я верю, что ТС не виноват. Опыт и знания у всех набираются по разному. Неравномерно. Человек может долго заниматся каким то делом, и при этом не знать о существовании некоторых базовых вещей. В жизни так и случается...

Невозможно работать в любой области, и не иметь базовых знаний. С 10 индикаторов скачанных с сети, как минимум 1 - декомпил. Советники так-же встречаются, но реже.