Показать сообщение отдельно
Старый 22.07.2014, 17:14
#1
Интересующийся
 
Пол: Мужской
Инвестирую в: Другое
Регистрация: 07.09.2009
Сообщений: 546
Благодарностей: 184
Gnetwork, разбор программы GRender - рендер фермы

Поскольку оригинальная тема про Gnetwork закрыта, напишу здесь в виде отдельной темы.

Пару дней назад я натолкнулся на проект Gnetwork, в частности на их рендер ферму

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

Еще смущает заявленный факт, что программа не использует видеокарту и рендерит все на процессоре. Странно да? ведь видеокарта для того и предназначена что рендерить.

В итоге я скачал демо версию и пощупал ее разными инструментами

Итак - устанавливаем, запускаем. Программа сделана по технологии ClickOnce, она не устанавливается в Program Files, а скачивается с вебсервера и запускается из temp директории. Берем Process Explorer и смотрим, откуда она запущена.
См картинку в аттаче

В моем случае это C:\Documents and Settings\m\Local Settings\Apps\2.0\1BYXHHTD.2MD\3JOB5RV7.76Z\gnre.. tion_0000000000000000_0001.0002_7b89cd25a702ca92\G N ReF.exe

размер .exe файла 3468800 байт, общий размер папки - 5664795 байт

Это обычный .net executable и легко разбирается рефлектором
В аттаче - исходники программы.

Программа предельна проста, не видно ни одного места, в котором бы вычислялось что то сложное.
Программа периодически опрашивает gnfarm-dev .gnetwork. biz / farm_script8.php, судя по всему на предмет заданий.

Задание состоит из длинной строки (~700Кб) вида 7AHKQ6eeHi8GH8YfzdFnEQtbS8HzYEt3D8sh6ry6dNeBaNa4y
Что это - непонятно, однако более интересней что с этим происходит дальше.
А происходит вот что - по таймеру в цикле молотится вот эта строка
this.text = GetString(this.md5Hash.ComputeHash(GetBytes(this.t ext)));
в GN_Network\module.cs Line 39

т.е. программа считает md5 хеши от хешей. Самый фикус в том что результат нигде и ни с чем не ****ивается. Количество циклов вычисляется при старте программы и зависит от скорости вашего процессора.

Как мне кажется таймер служит для того что бы не перегружать процессор

Результат отправляется на сервере в виде
GET /farm_script8.php?func=get_module&rand=1.2.2.2cb1f1 e892b2602ef829df6f10ecd7a9f&sign=420158f38513a9472 f344aeef3fa730e&session=a3d2950caec1d477f310a19e46 7ec322&id=30474581&render=fc37e65a...f180a069f2519 d1b88700c4 HTTP/1.1

значение ключа render и есть результат, причем он абсолютно не зависит от вычислений и формируется как случайная строка
while (str5.Length < 0x400)
{
str5 = str5 + this.md5(this.random.Next(0, 0x186a0).ToString());
}
data = data + "&render=" + str5;
GN_Network\server.cs Line 315

Мое мнение таково - что эта программа ничего полезного не делает, а просто изображает деятельность грузя процессор
Миниатюры
Нажмите на изображение для увеличения
Название: gn.png
Просмотров: 16
Размер:	93.4 Кб
ID:	103558  
Вложения
Тип файла: rar grender.rar (997.7 Кб, 0 просмотров)
drvint вне форума
Перейти в тему этого сообщения: Gnetwork, разбор программы GRender - рендер фермы