def patching(packages): ''' Patch AppleALC for XPS15-9550 and Delete VoodooPS2Mouse.kext and VoodooPS2Trackpad.kext ''' for package in packages: if 'AppleALC.kext' in package.items: # XPS15 only plist = Plist( Path(package.folder, 'AppleALC.kext', 'Contents', 'Info.plist')) plist.plist['IOKitPersonalities']['HDA Hardware Config Resource'][ 'HDAConfigDefault'] = [ dict( AFGLowPowerState=Plist.data('AwAAAA=='), Codec= 'Constanta - Realtek ALC298 for Xiaomi Mi Notebook Air 13.3 Fingerprint 2018', CodecID=283902616, FuncGroup=1, LayoutID=30, WakeVerbReinit=True, ConfigData=Plist.data( 'ASccMAEnHQABJx6gAScfkAF3HEABdx0AAXceFwF3H5ABdwwCAYcccAGHHRABhx6BAYcfAAIXHCACFx0QAhceIQIXHwA=' ), WakeConfigData=Plist.data('AYcHIg==')) ] plist.save() Title('AppleALC.kext is patched') if package.items[0] == 'VoodooPS2Controller.kext': for kext in ('VoodooPS2Mouse.kext', 'VoodooPS2Trackpad.kext'): sh('rm -rf {}*'.format( Path(package.folder, package.items[0], 'Contents', 'PlugIns', kext))) Title('VoodooPS2Mouse.kext and VoodooPS2Trackpad.kext are deleted')
def openewin(self): if (Settings.state1 == False): flag = 0 Settings.num1 = self.textEdit.toPlainText() Settings.num2 = self.QLineEdit_2.text() h = hashlib.md5(Settings.num2.encode('cp1251')).hexdigest() values = (Settings.num1, h) if(Settings.num1 == '' or Settings.num2 == ''): QMessageBox.about(self, "Предупреждение", "Заполните пожалуйста поля") flag = 0 else: flag = 1 if (flag == 1): str1 = str(values[0]) + "," + str(values[1]) Settings_host.sock.sendto(("A" + str1).encode("cp1251"), Settings_host.server) time.sleep(1) if Settings.data_From_Server[0] == "A": res = Settings.data_From_Server[1:] if res == 'False': QMessageBox.about(self, "Предупреждение", "Проверьте правильность введенных данных. Если вас нет в системе - зарегистрируйтесь.") flag = 0 elif res == 'True': f = open('data.txt', 'w') f.write(Settings.num1) f.close() self.close() sh("python chatForm.py")
def download_theme(theme: Path): if not theme.exists() or Confirm('Theme {} exists, do you want to update it'.format(theme.name)): Title('Downloading theme', theme.name) sh('cd {} && git archive --remote=git://git.code.sf.net/p/cloverefiboot/themes HEAD themes/{} | tar -x -v'.format( theme.parent.parent, theme.name)) Title('Theme', theme.name, 'downloaded into', theme.parent) print()
def patching(kexts: Path): Title('Set delay after typing to 50ms') info = Plist(kexts / 'VoodooI2CHID.kext' / 'Contents' / 'Info.plist') info.set('IOKitPersonalities>VoodooI2CHIDDevice Precision Touchpad HID Event Driver>QuietTimeAfterTyping', 50) info.save() Title('Delete VoodooPS2Mouse.kext and VoodooPS2Trackpad.kext') for kext in ('VoodooPS2Mouse.kext', 'VoodooPS2Trackpad.kext'): sh('rm -rf {}'.format(kexts / 'VoodooPS2Controller.kext' / 'Contents' / 'PlugIns' / kext))
def install(): tr = sh('rm installed') tr = sh('ls | grep poc >> installed') f = open('installed') if f.readline() != "poc\n": print("Installing and compiling dependencies...") sleep(3) tr = sh('apt install gcc g++ build-essential bluetooth libbluetooth-dev bluez -y') tr = sh('gcc poc.c -lbluetooth -o poc') tr = sh('clear')
def simulate(self): os.environ['EXPORT_ABNORMAL_FLOW'] = 'TRUE' if self.args.export_ano else 'FALSE' cd(self.ROOT + '/Simulator') sh('python fs.py %s -t %d' % (self.dot_file, self.sim_t)) dir = self.args.dir if dir: if not os.path.exists(dir): os.makedirs(dir) sh('cp *.txt %s' % (dir)) cd(self.ROOT)
def convert_dsl_to_aml(iasl_path: str, target: str = "") -> str: """Convert dsl file to aml Args: iasl_path (str): iasl excec path target (str, optional): Path of dsl file need to be converted. Defaults to "". Returns: str: output aml path file """ from os import system as sh sh("{} -oa {}".format(iasl_path, target)) return str(target).replace(".dsl", ".aml")
def perm_exec(path_file: str) -> bool: """Add exec permission to given path Args: path_file (str): file that need exec permission Returns: bool: return True """ if platform.system() != "Windows": from os import system as sh sh("chmod a+x {}".format(path_file)) return True
def zip_folder(folders): sh('rm -rf {}/*.aml'.format(R('ACPI'))) for folder in folders: set_config( folder / 'config.plist', 'sn={} mlb={} smuuid={} bootarg+-v'.format( DEFAULT_SN, DEFAULT_MLB, DEFAULT_SMUUID).split(' ')) sh('cd {} && zip -r {}-{}-$(date +%y%m%d).zip {} README.md update.py packages.csv {}' .format(root, BUILD_PREFIX, folder.name, folder.name, ' '.join(SHIPPED_FOLDER))) # Move to build folder sh('mkdir -p Builds') sh('rm -rf ./Builds/*') sh('mv {}* ./Builds'.format(BUILD_PREFIX))
def update(self, tmp=Path(__file__).parent.joinpath('tmp')): tmpfile = tmp / self.rurl.split('/')[-1] tmpfolder = Path(tmp, tmpfile.name.split('.')[0]) if not tmpfile.exists(): print('Downloading', self.lurl, 'from', self.rurl) sh('curl -# -R -Lk {} -o {}'.format(self.rurl, tmpfile)) if self.rurl.endswith('.zip'): sh('unzip -qq -o {} -d {}'.format(tmpfile, tmpfolder)) else: tmpfolder.mkdir(exist_ok=True) sh('cp -p {} {}'.format(tmpfile, tmpfolder)) self.folder.mkdir(exist_ok=True, parents=True) sh('rm -rf {}'.format(self.lurl)) for r in tmpfolder.rglob(self.name): sh('cp -pr {} {}'.format(r, self.folder))
def enterpassword(user): """enterpassword(user)""" from os import system as sh from base64 import encodestring from Crypto.Cipher import AES from hashlib import sha256 if sys.platform.startswith('win'): pswd = raw_input('%s\'s password : '******'%s\'s password : '******'stty -echo') pswd = raw_input() sh('stty echo') print(encodestring(sha256(pswd).digest())) return pswd
def compile_ssdts(folder: Path): # compile if .aml not exist dsls = [] for dsl in folder.rglob('*.dsl'): aml = Path(dsl.parent, dsl.name.replace('.dsl', '.aml')) if not aml.exists(): dsls.append((dsl, aml)) else: aml_mtime = get_timestamp(aml, 'm') dsl_mtime = get_timestamp(dsl, 'm') if dsl_mtime > aml_mtime: dsls.append((dsl, aml)) for (dsl, aml) in dsls: Title('Compiling {} to aml'.format(dsl)) sh('{} -oa {}'.format(iasl, dsl)) return dsls
def default(folders): keyword = '' if path.name in ('Kexts', 'kexts', 'Other'): keyword = 'kext' elif path.name in ('Drivers', 'drivers', 'UEFI'): keyword = 'driver' for folder in folders: name = folder.name mapper = mappers[name] other = 'CLOVER' if name == 'OC' else 'OC' packages = [] with open(R('packages.csv'), 'r') as f: keys = f.readline()[:-1].lower().split(',') for x in f: package = Package(**dict(zip(keys, x[:-1].split(',')))) pf = package.folder if pf[0] == '#': # remove this for r in folder.rglob(package.name): print('Remove {}'.format(r)) sh('rm -rf {}'.format(r)) continue if package.name == path.name: package.folder = path.parent packages = [package] break if pf.startswith(other) or keyword not in pf.lower(): continue if pf.startswith(name): package.folder = R(pf) else: package.folder = folder / mapper.get(pf, pf) packages.append(package) if packages and Confirm('Do packages update for ' + folder.name): update_packages(packages) patching(folder / mapper.get('Kexts', 'Kexts')) if OC in folders: update_oc_info(OC)
def self_update(folders): sh('curl -# -LOk {}/archive/master.zip'.format(GITHUB_URL)) sh('unzip {} -d {}'.format('master.zip', root)) master = R('{}-macos-master'.format(BUILD_PREFIX.lower())) for folder in folders: config = folder / 'config.plist' if config.exists(): masterconfig = Plist(master / folder.name / 'config.plist') Plist(config).copy(masterconfig) masterconfig.save() else: sh('rm -rf {}'.format(master / folder.name)) sh('cp -pr {}/* {}'.format(master, root)) update_acpi(R('ACPI'), folders) if R('OC').exists(): update_oc_info(R('OC')) sh('rm -rf {} {}'.format('master.zip', master))
def openewin2(self): Settings.num += 1 if(Settings.state2 == True or Settings.num == 1): self.pushButton.setGeometry(QtCore.QRect(80, 370, 200, 51)) self.pushButton.setStyleSheet("background-color: rgb(104, 140, 140, 0.05);\n" "font: 75 italic 16pt \"MS Shell Dlg 2\";\n" "color: rgb(0, 0, 0);") self.pushButton_2.setGeometry(QtCore.QRect(70, 270, 220, 51)) self.pushButton_2.setStyleSheet("background-color: rgb(104, 140, 140);\n" "font: 75 italic 16pt \"MS Shell Dlg 2\";\n" "color: rgb(255, 255, 255);") self.pushButton.hide() Settings.state2 == False self.pushButton_3.show() if(Settings.state2 == False or Settings.num >= 2): flag = 0 Settings.num1 = self.textEdit.toPlainText() Settings.num2 = self.QLineEdit_2.text() h = hashlib.md5(Settings.num2.encode('cp1251')).hexdigest() values = (Settings.num1, h) if (Settings.num1 == '' or Settings.num2 == ''): QMessageBox.about(self, "Предупреждение", "Заполните пожалуйста поля") flag = 0 else: flag = 1 if (flag == 1): str1 = str(values[0]) + "," + str(values[1]) Settings_host.sock.sendto(("R" + str1).encode("cp1251"), Settings_host.server) time.sleep(2) if Settings.data_From_Server[0] == "R": res = Settings.data_From_Server[1:] if res == "True": self.close() f = open('data.txt', 'w') f.write(Settings.num1) f.close() sh("python chatForm.py") elif res == "False": QMessageBox.about(self, "Предупреждение", "Такое имя уже существует в системе. Если вы уже зарегистрированы, авторизуйтесь.")
def scanandexploit(): tr = sh('clear') print("Scanning...") tr = sh('hciconfig hci0 up') tr = sh('hcitool scan >> targets') global lines for line in open('targets'): lines += 1 for i in range(1, lines): tr = sh('cat targets | grep : | awk \'{print "Addr(%s): "$1; print "Device: "$2; print ""}\'' % i) devid = int(input("Input device ID: ")) r = 0 btaddr = '' f = open('targets') f.readline() for i in range(devid): line = f.readline() for i in line: if i == "\n" or i == "\t": continue r += 1 if r > 17: break btaddr += i tr = sh('rm targets') print("Addres %s added to memory" % btaddr) print("Exploiting...") sleep(3) sh('./poc %s' % btaddr)
def goto_board(self, board): #Shows Message sh("clear") self.actualboard = board print("Your request: " + board) self.__actual_url = self.__board + board sp = bs(r.get(self.__actual_url).content, "html.parser") print(sp.find("title").text + "\n" + get_meta_info("description", sp)) if sp.find("title").text[:3] == "404": print("404 - back to main") self.main_screen() print("Loading threads...") threads = self.get_threads(self.__actual_url) print("Displaying threads...") self.display_board(threads) while True: print( "\n\tOptions:\n[i:download by idshort] [m:go to main] [c:change current page]\n[p:download all images of all threads in actual page]\n[v:view thread] [x:exit]" ) opc = input("option: ") if opc == "i": idshort = int(input("select idshort: ")) self.get_thread_files(threads[idshort]["post_url"], input("directory: ") + "/") elif opc == "m": self.main_screen() elif opc == "c": page = input("Enter number of page: ") self.goto_board(self.actualboard + page) elif opc == "v": idshort = int(input("select idshort: ")) self.view_thread(threads[idshort]["post_url"]) elif opc == "p": for idshort in list(threads.keys()): #title=threads[idshort]["title"] #if title==str(): title = threads[idshort]["post_id"].text print("Downloading thread: " + title) print("Downloading from: " + threads[idshort]["post_url"]) self.get_thread_files(threads[idshort]["post_url"], title + "/") print("%i of 15 threads completed" % (idshort)) elif opc == "x": exit()
def browseBoards(): i = 0 while True: sh("clear") check(lambda:sys.stdout.write(open(str(i)+".life").read()+EOL), "Error, no such file: ``{}\"".format(str(i)+".life")) print("File: "+str(i)+".life") inp = check(lambda: raw_input("?> "), "\n", errfunc=lambda: exit(1)).split(" ") cmd = inp[0] if cmd in ["help", "?", "h"]: print(__BROWSE_DOC__) raw_input("Enter...") elif cmd in ["f", ""]: i += 1 elif cmd == "b": i -= 1 elif cmd == "go": i = check(lambda:int(inp[1]), "Error, not enough arguments, or invalid argument recieved"+EOL) elif cmd == "exit": return 0
def run(name, args, idx): l = idx[0] if len(idx) == 2: r = idx[1] else: r = idx[0] for i in range(l, r + 1): print "(info) Generating 'night%s.in'..." % i sh("./%s-gen.py %s > night%s.in" % (name, " ".join(map(str, args)), i)) sh("./encoder < night%s.in > night%s.out" % (i, i)) sh("mv night%s.out night%s.in" % (i, i)) sh("./std < night%s.in > night%s.ans" % (i, i))
def update(self): def hook(count, block, total): percent, width = min(count * block / total, 1), 25 length = int(percent * width) print("{:<32} {:>8.1f}K [{}{}] {:.0%}".format( self.name, total / 1024, '#' * length, ' ' * (width - length), percent), end='\r' if percent < 1 else '\n') tmpfile = self.rurl.split('/')[-1] # with ext filename = tmpfile.split('.')[0] tmpfolder = tmp.joinpath(filename) tmpfolder.mkdir(exist_ok=True) tmpfile = tmpfolder.joinpath(tmpfile) if not tmpfile.exists(): tmpfile, message = urlretrieve(self.rurl, tmpfile, reporthook=hook) if self.rurl.endswith('.zip'): sh('unzip -qq -o {} -d {}'.format(tmpfile, tmpfolder)) self.folder.mkdir(exist_ok=True, parents=True) for item in self.items: itempath = self.folder.joinpath(item) sh('rm -rf {}'.format(itempath)) sh(' '.join( ('find', str(tmpfolder), '-name', item, '-type', 'd' if item.endswith('.kext') or item in ('OC', 'CLOVER') else 'f', "| xargs -I '{}'", 'cp -r {}', str(self.folder))))
def compile_ssdts(folder: Path): # compile if .aml not exist ssdts = [] for dsl in folder.rglob('SSDT-*.dsl'): aml = Path(dsl.parent, dsl.name.replace('.dsl', '.aml')) if not aml.exists() or get_timestamp(dsl, 'm') > get_timestamp(aml, 'm'): ssdts.append((dsl, aml)) iasl = folder / 'iasl' if not iasl.exists(): Title('Downloading iasl...') sh('curl -# -R -LOk https://bitbucket.org/RehabMan/acpica/downloads/iasl.zip') sh('unzip iasl.zip iasl -d {} && rm iasl.zip'.format(iasl.parent)) sh('chmod a+x {}'.format(iasl)) for (dsl, aml) in ssdts: sh('{} -oa {}'.format(iasl, dsl)) return ssdts
def clean(): garbage_patterns = [ "*/__pycache__", "**/*.pyc", "*.sqlite", "./*egg-info", "./build", "./dist", ] paths = set() for root, dirs, files in walk("."): for dir_ in dirs: paths.add(join(root, dir_)) for file in files: paths.add(join(root, dir_, file)) else: for file in files: paths.add(join(root, file)) for pattern in garbage_patterns: for path in paths: if fnmatch(path, pattern): sh("rm -rvf %s" % path)
def log_in(self): user_name = self.lineEdit.text() password = self.lineEdit_2.text() self.db = sqlite3.connect('data_managers.db') self.cur = self.db.cursor() self.cur.execute('SELECT * FROM managers WHERE manager_user_name = ?', (user_name, )) data = self.cur.fetchone() self.db.close() if data == None: QMessageBox.critical(self, 'خطا', 'نام کاربری یا رمز عبور وارد شده صحیح نیست') elif user_name == data[1] and password == data[2]: self.close() sh("python manager_page.py") else: QMessageBox.critical(self, 'خطا', 'نام کاربری یا رمز عبور وارد شده صحیح نیست')
def browseEvolutionsDirectly(): i = 0 evolutions = [] while True: sh("clear") check(lambda:sys.stdout.write(open(str(i)+".life").read()+EOL), "Error, no such file: ``{}\"".format(str(i)+".life")) print("File: "+str(i)+".life") inp = check(lambda: raw_input("?> "), "\n", errfunc=lambda: exit(1)).split(" ") cmd = inp[0] if cmd in ["help", "?", "h"]: print(__BROWSE_DOC__) raw_input("Enter...") elif cmd in ["f", ""]: updateBoard() evolutions.append(_board_) i += 1 elif cmd == "b": i -= 1 elif cmd == "go": if int(inp[1]) > len(evolutions): while len(inp[1]) > len(evolutions): evolutions.append(_board_) elif cmd == "exit": return 0
#!/usr/bin/env pypy from os import system as sh if sh("g++ main.cpp -std=c++11 -O3 -o main.exec"): exit(-1) if sh("g++ center.cpp -std=c++11 -O3 -o brute.exec"): exit(-1) cnt = 1 while True: sh("./gen.py 7 10 > data.in") sh("./main.exec < data.in > data.out") sh("./brute.exec < data.in > data.ans") if sh("diff -Bb data.out data.ans"): print "Hacked!" break else: print cnt cnt += 1
def Done(msg: str = 'Done'): print(msg) sh('rm -rf {}'.format(tmp)) exit()
def replace_with_release(folder: Path, version='latest'): '''folder is CLOVER/OC ''' # backup your config originconfig = folder / 'config.plist' backupconfig = R(folder.name + '.plist') originthemes = folder / 'themes' backupthemes = R('themes') if originconfig.exists(): sh('mv {} {}'.format(originconfig, backupconfig)) if originthemes.exists(): sh('mv {} {}'.format(originthemes, backupthemes)) sh('rm -rf {}'.format(folder)) if update_packages([ Package(name=folder.name, folder=root, url=GITHUB_URL, description=folder.name + ' ' + GITHUB_DESCRIPTION, version=version, pattern='.*-' + folder.name) ]): if backupconfig.exists(): originconfig = Plist(originconfig) Plist(backupconfig).copy(originconfig) originconfig.save() if backupthemes.exists(): sh('rm -rf {}'.format(originthemes)) sh('mv {} {}'.format(backupthemes, originthemes)) sh('rm -f {}'.format(backupconfig)) sh('rm -f {}'.format(backupthemes))
#!/usr/bin/env pypy import sys from os import system as sh if len(sys.argv) < 6: print "Usage: %s [N] [Q] [T] [G] [ID]" % sys.argv[0] exit(-1) n = sys.argv[1] q = sys.argv[2] t = sys.argv[3] generator = sys.argv[4] idx = sys.argv[5] print "Generating origin data..." sh("./gen-%s.py %s %s 0 > bipartite.in" % (generator, n, q)) print "Getting answer..." sh("./a.out < bipartite.in > bipartite.out") if t == '1': print "Encrypting..." sh("./encrypt.py bipartite.in bipartite.out > bipartite%s.in" % idx) else: sh("cp bipartite.in bipartite%s.in" % idx) sh("cp bipartite.out bipartite%s.ans" % idx) print "Finished!"
#!/usr/bin/env pypy from os import system as sh sh('g++ grader.cpp rts.cpp -g') cnt = 0 while True: cnt += 1 print cnt sh('./gen.py 7 > data.in') sh('./a.out < data.in > data.out') with open('data.out', 'r') as reader: l = reader.readline() if l.strip() != 'Correct': print 'Hacked!' break;
#!/usr/bin/env pypy from os import system as sh sh("g++ seer.cpp -O3") cnt = 1 while True: sh("./seer-gen.py 100000 250000 1000 > seer.in") sh("./a.out < seer.in > seer.out") with open("seer.out", "r") as reader: ans = int(reader.readline()) if ans == -1: print "Hacked!" break else: print cnt cnt += 1
#!/usr/bin/env pypy from os import system as sh sh("g++ main.cpp -std=c++11 -O3 -o mine.out") sh("g++ std.cpp -O3 -o std.out") cnt = 1 while True: sh("./gen.py 4 4 2 > data.in") sh("./mine.out < data.in > data.out") sh("./std.out < data.in > data.ans") if sh("diff -Bb data.out data.ans"): print "Hacked!" break else: print cnt cnt += 1
#!/usr/bin/env pypy from os import system as sh cnt = 0 while True: cnt += 1 print cnt sh("./gen.py > data.in") if sh("./a.out < data.in > /dev/null"): print "RE" break
def test(): sh("coverage run --source=%s -m unittest discover -v" % PROJECT)
def version(): print("%s %s" % (PROJECT, VERSION)) sh("python --version")
#!/usr/bin/env pypy from os import system as sh if sh("g++ ticket.cpp -std=c++11 -o ticket.exec"): exit(-1) if sh("g++ ticket-brute.cpp -O3 -o ticket-brute.exec"): exit(-1) cnt = 1 while True: sh("./ticket-gen.py 5000 > ticket.in") sh("./ticket.exec < ticket.in > ticket.out") sh("./ticket-brute.exec < ticket.in > ticket.ans") if sh("diff -Bb ticket.out ticket.ans"): print("Hacked!") break else: print(cnt) cnt += 1
#!/usr/bin/env pypy from os import system as sh sh("g++ bracket.cpp -g") cnt = 1 while True: sh("./bracket-gen.py 6 > data.in") if sh("./a.out < data.in > /dev/null"): print "Hacked!" break else: print cnt cnt += 1
from os import system as sh def gen(idx, n): print "(info) Generating 'spiral%s.in'..." % idx sh("./gen.py %s > spiral%s.in" % (n, idx)) print "(info) Generating 'spiral%s.ans'..." % idx sh("./a.out < spiral%s.in > spiral%s.ans" % (idx, idx)) gen(1, 4) gen(2, 9) gen(3, 9) gen(4, 100) gen(5, 998) gen(6, 1000) gen(7, 89999) gen(8, 100000) gen(9, 1000000) print "(info) Generating 'spiral10.in'..." with open("spiral10.in", "w") as writer: writer.write("1000000\n") writer.write("2 1 ") for i in xrange(3, 10**6 + 1): writer.write(str(i) + " ") print "(info) Generating 'spiral10.ans'..." sh("./a.out < spiral10.in > spiral10.ans")
def uninstall(): sh("sudo -H pip -q uninstall -y %s" % PROJECT)
#!/usr/bin/env pypy from os import system as sh sh("g++ merchant.cpp -std=c++11 -O3 -o merchant.out") sh("g++ merchant-brute.cpp -std=c++11 -O3 -o brute.out") cnt = 1 while True: sh("./merchant-gen.py 100 1000 1000 1000000 > data.in") sh("./merchant.out < data.in > data.out") sh("./brute.out < data.in > data.ans") if sh("diff -Bb data.out data.ans"): print "Hacked!" break else: print cnt cnt += 1
def install_deps(): sh("pip install -q -U requirements-dev.txt")
#!/usr/bin/env pypy from sys import * from os import system as sh a, b, n, q = argv[1:] n, q = map(int, (n, q)) sh("g++ %s -std=c++11 -O3 -o /tmp/a.out" % a) sh("g++ %s -std=c++11 -O3 -o /tmp/b.out" % b) cnt = 1 while True: sh("./gen.py %s %s > /tmp/data.in" % (n, q)) sh("/tmp/a.out < /tmp/data.in > /tmp/a.ans") sh("/tmp/b.out < /tmp/data.in > /tmp/b.ans") if sh("diff -Bb /tmp/a.ans /tmp/b.ans"): print "Hacked!" break else: print cnt cnt += 1
#!/usr/bin/env pypy from os import system as sh sh("g++ love.cpp -O3") sh("g++ love-brute.cpp -O3 -o brute.out") cnt = 1 while True: sh("./love-gen.py 10 1000000 > love.in") sh("./a.out < love.in > love.out") sh("./brute.out < love.in > love.ans") if sh("diff -Bb love.out love.ans"): print "Hacked!" break else: print cnt cnt += 1
#!/usr/bin/env pypy from os import system as sh sh("g++ simplex.cpp -O3 -o simplex.out") sh("g++ std.cpp -O3 -o std.out") cnt = 1 while True: sh("./gen.py 20 20 > data.in") sh("./simplex.out < data.in > data.out") sh("./std.out < data.in > data.ans") with open("data.ans", "r") as reader: std = reader.readline().strip() with open("data.out", "r") as reader: usr = reader.readline().strip() if std == "Infeasible" or std == "Unbounded": if usr != std: print "Hacked!" break elif abs(float(std) - float(usr)) >= 1e-4: print "Hacked!" break print cnt cnt += 1
def install(): sh("pip install -q .")
#!/usr/bin/env pypy from os import system as sh sh("g++ brute.cpp -O3 -o brute.exec") sh("g++ main.cpp -g") cnt = 1 while True: sh("./gen.py 100 100 2147483647 > data.in") sh("./a.out < data.in > data.out") sh("./brute.exec < data.in > data.ans") if sh("diff -Bb data.out data.ans"): print "Hacked!" break else: print cnt cnt += 1
#!/usr/bin/env pypy from os import system as sh sh("g++ forest.cpp -std=c++11 -o forest.exec") sh("g++ forest-brute.cpp -O3 -o brute.exec") cnt = 1 while True: sh("./gen.py 2 5 > forest.in") sh("./forest.exec < forest.in > forest.out") sh("./brute.exec < forest.in > forest.ans") if sh("diff -Bb forest.out forest.ans"): print "Hacked!" break else: print cnt cnt += 1
#!/usr/bin/env pypy from os import system as sh if sh("g++ c-brute.cpp -O3 -o brute.exec"): exit(-1) if sh("g++ c.cpp -O3 -o c.exec"): exit(-1) cnt = 1 while True: sh("./c-gen.py 1000 100 1000000000 > c.in") sh("./c.exec < c.in > c.out") sh("./brute.exec < c.in > c.ans") if sh("diff -Bb c.out c.ans"): print "Hacked!" break else: print cnt cnt += 1
#!/usr/bin/env pypy from os import system as sh sh("g++ C.cpp -O3") sh("g++ C-brute.cpp -O3 -o b.out") cnt = 1 while True: sh("./C-gen.py 10 30 2 > C.in") sh("./a.out < C.in > C.out") sh("./b.out < C.in > C.ans") if sh("diff -Bb C.out C.ans"): print "Hacked!" break else: print cnt cnt += 1
def update_acpi(ACPI: Path, folders): def compile_ssdts(folder: Path): # compile if .aml not exist ssdts = [] for dsl in folder.rglob('SSDT-*.dsl'): aml = Path(dsl.parent, dsl.name.replace('.dsl', '.aml')) if not aml.exists() or get_timestamp(dsl, 'm') > get_timestamp( aml, 'm'): ssdts.append((dsl, aml)) iasl = folder / 'iasl' if not iasl.exists(): Title('Downloading iasl...') sh('curl -# -R -LOk https://bitbucket.org/RehabMan/acpica/downloads/iasl.zip' ) sh('unzip iasl.zip iasl -d {} && rm iasl.zip'.format(iasl.parent)) sh('chmod a+x {}'.format(iasl)) for (dsl, aml) in ssdts: sh('{} -oa {}'.format(iasl, dsl)) return ssdts def get_patches(ACPI: Path): '''Get patches from dsl files // Patch: xxx // Find: ABC // Replace: DEF ''' patches = [] for dsl in Path(ACPI).rglob('SSDT-*.dsl'): with open(dsl, 'r') as f: while True: line = f.readline() if line.startswith('// Patch:'): patches.append({ 'Comment': line[9:].strip(), 'Find': Plist.data(f.readline()[8:].strip()), 'Replace': Plist.data(f.readline()[11:].strip()) }) elif not line: break return patches patches = sorted(get_patches(ACPI), key=lambda x: x['Comment']) Title('Updating SSDTs') if ACPI == root: # do a full update sh('rm -rf {}/*.aml'.format(ACPI)) ssdts = compile_ssdts(ACPI) # [(dsl, aml), ...] for folder in folders: if not folder.exists(): continue patches = get_patches(ACPI) acpi = folder / mappers[folder.name].get('ACPI', 'ACPI') sh('rm -rf {}'.format(acpi)) acpi.mkdir(exist_ok=True, parents=True) sh('cp -p {}/SSDT-*.aml {}'.format(ACPI, acpi)) config = Plist(folder / 'config.plist') if folder == CLOVER: for patch in patches: patch['Disabled'] = False config.plist['ACPI']['DSDT']['Patches'] = patches else: for patch in patches: patch['Enabled'] = True config.plist['ACPI']['Patch'] = patches config.plist['ACPI']['Add'] = [{ 'Enabled': True, 'Path': aml.name } for aml in sorted((folder / 'ACPI').glob('SSDT-*.aml'))] config.save() print(folder, 'patches updated')
#!/usr/bin/env pypy from os import system as sh sh("g++ random.cpp -O3 -o random.out") sh("g++ brute.cpp -O3 -o brute.out") for i in xrange(1, 10**9): sh("./random-gen.py 40 600 1000000007 > data.in") sh("./random.out < data.in > data.out") sh("./brute.out < data.in > data.ans") if sh("diff -Bb data.out data.ans"): print "Hacked!" break else: print i
def post_install(): fix_sleep() sh('sudo bash ./PostInstall/CombojackFix/install.sh')
#!/usr/bin/env pypy from os import system as sh sh("g++ main.cpp -g") cnt = 1 while True: sh("./gen.py 100 > data.in") sh("./a.out < data.in > data.out") mat = [] with open("data.in", "r") as reader: T = reader.readline() n, m = map(int, reader.readline().split()) for i in xrange(n): mat.append(map(int, reader.readline().split())) with open("data.out", "r") as reader: perm = map(int, reader.readline().split()) for i in xrange(n): assert 1 <= perm[i] <= n j = 0 while mat[i][j] != perm[i]: j += 1 while j < m: mat[i][j] = perm[i] j += 1
#!/usr/bin/env pypy from os import system as sh from random import * sh("g++ network.cpp -g -std=c++11 -o a.out") sh("g++ brute.cpp -O2 -o brute") def random_string(n): return "".join([chr(randint(ord('a'), ord('z'))) for i in range(0, n)]) while True: sh("./datagen.py 1000 2000 1000000000 > network.in") sh("./a.out") sh("./brute") if sh("diff -b -B network.out brute.out"): print("Hacked!") exit(0) else: print(random_string(7))
#!/usr/bin/env pypy from os import system as sh if sh("g++ monument.cpp -O3 -o monument.exec"): exit(-1) if sh("g++ brute.cpp -O3 -o brute.exec"): exit(-1) cnt = 1 while True: sh("./gen.py 500 1000000000 > monument.in") sh("./monument.exec < monument.in > monument.out") sh("./brute.exec < monument.in > monument.ans") if sh("diff -Bb monument.out monument.ans"): print "Hacked!" break else: print cnt cnt += 1
def gen(idx, n): print "(info) Generating 'spiral%s.in'..." % idx sh("./gen.py %s > spiral%s.in" % (n, idx)) print "(info) Generating 'spiral%s.ans'..." % idx sh("./a.out < spiral%s.in > spiral%s.ans" % (idx, idx))
#!/usr/bin/env pypy from os import system as sh cnt = 1 while True: sh("./gen.py 499 757 > data.in") if sh("./a.out < data.in > data.out"): print "Hacked!" break print cnt cnt += 1
# if dt_tmp1 <= now and now < dt_tmp2: # if str_run != "": # print("{} - {}: {}".format(titem[0], titem[1], str_run[0])) # elif now <= dt_tmp1: # print("{} - {}: {}".format(titem[0], titem[1], lst_queue[i][0])) # i += 1 i += 1 has_opt = True if args.add: add_start = input("start date -> ") add_end = input("end date -> ") if add_start == "" and add_end == "": add_start = now add_end = now + oneday add_title = input("title -> ") f = open(dir_script + '/sche.csv', "a") f.write( add_start.strftime("%Y-%m-%d %H:%M") + ',' + add_end.strftime("%Y-%m-%d %H:%M") + ',' + add_title + "\n") f.close() has_opt = True if args.edit: sh('vim {0}/proj.csv {0}/ttable.csv'.format(os.path.dirname(__file__))) has_opt = True if not has_opt: print_items(list_today) except Exception as e: print(RED + "*** Error occured in parsing csv file! ***" + ENDC) print(e) print(line)
def _bump(increment): new_version = "%0.1f" % (VERSION + increment) response = input("Bump from %s to %s? (y/n) " % (VERSION, new_version)) if not response.lower().strip().startswith("y"): print("aborting") return install_deps() with open(VERSION_PATH, "w") as version_txt: version_txt.write("VERSION = %s\n" % new_version) sh("git reset HEAD -- .") # unstage all changes sh("git add %s/__version__.py" % PROJECT) sh('git commit -m "Version bump"') sh("git tag %s" % new_version) sh("git push") sh("git push --tags") sh("./setup.py sdist bdist_wheel") sh("python -m twine upload dist/%s-%s*" % (PROJECT, new_version)) clean()