def validator(self, _args): if _args.file: file = FileReader.FileReader(_args.file) word = file.read_file() scorecounter = ScoreCounter.ScoreCounter(word) print(scorecounter.max_from_file()) if _args.count: value = ScoreCounter.ScoreCounter(_args.count) print("score for word: " + _args.count + ": " + str(value.result(_args.count))) if _args.score: file = FileReader.FileReader('dictionary.txt') word = file.read_file() scorecounter = ScoreCounter.ScoreCounter(word) list_of_words_and_scores = scorecounter.count_for_all() list_of_words_and_scores.sort(key=lambda tup: tup[1]) word_finder = WordFinder.WordFinder(list_of_words_and_scores, _args.score) if word_finder.search_a_word() is not None: print(random.choice(word_finder.find_all_matching_words())) pass
def run(self): self.loading() for f in self.javaFiles: fileReader = FileReader(f) found = Parser.finder(fileReader, [[Parser.findVarName, (['WebView '], None)], [Parser.findObjName, ('clearCache', None)]]) webviews = found[0] webviewsClearCache = found[1] cpy = webviews.copy() for w in cpy: if not w[R.INSTR].startswith('WebView '): webviews.remove(w) webviews = Parser.setScopes(webviews) # webviews have to use 'clearCache' method In, NotIn = Parser.diff(webviews, webviewsClearCache) # Set log msg In = Parser.setMsg(In, R.OK) NotIn = Parser.setMsg(NotIn, R.WARNING, self.errMsg) self.updateOWN(f, In, NotIn, (len(webviews) == 0)) self.loading() fileReader.close() self.store(16, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category) self.display(FileReader)
def run(self): self.loading() for f in self.javaFiles: fileReader = FileReader(f) found = Parser.finder( fileReader, [[Parser.findArgName, ('getSharedPreferences', 1, None)]])[0] cpy = found.copy() for e in cpy: if 'SharedPreferencesHelper' in e[R.INSTR]: found.remove(e) In, NotIn = self.checkArgument(found) # Set log msg In = Parser.setMsg(In, R.OK) NotIn = Parser.setMsg(NotIn, R.CRITICAL, self.errMsg) self.updateOCN(f, In, NotIn, (len(found) == 0)) self.loading() fileReader.close() self.store(12, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category) self.display(FileReader)
def __init__(self, path_train_dir, is_submission=False): if is_submission: path = os.path.join('.', "reuters_train_data") else: path = path_train_dir logger.info('Parsing train data...') data_parser = dataParser.DataParser(path) raw_data = data_parser.parse_data() logger.info('parse train data COMPLETE') # process data self.data = File_reader.FileReader(raw_data) # self.data = pickle.load(open("data.zip", 'rb')) self.inv_labels = self.data.inv_labels # self.inv_labels = pickle.load(open("inv_labels.zip", 'rb')) logger.info('Creating train_features and train_labels...') self.train_features, self.train_labels = self.data.build_set_tfidf() # self.train_features = self.data.build_set_tfidf() # self.train_labels = pickle.load(open("train_labels.p", 'rb')) logger.info('Creating train_features and train_labels COMPLETE') logger.info('Number of train articles: %s', self.train_features.shape[0])
def seekCondsInFiles(javaFiles, conds): res = False for f in javaFiles: fileReader = FileReader(f) booleans = [False] * len(conds) line, elem = fileReader.getNextInstruction() clssID = fileReader.getClassID() constraintID = -1 while (line != ''): if len([b for b in booleans if b is True]) == len(conds): res = True break if constraintID == -1 and all(word in line for word in conds[0]): constraintID = clssID booleans[0] = True for i in range(1, len(conds)): if all(word in line for word in conds[i]) and constraintID == clssID: booleans[i] = True line, elem = fileReader.getNextInstruction() clssID = fileReader.getClassID() fileReader.close() if res: break return res
def parse(filename, v_opt): """ Parses the save file and transforms it to xml """ root = ET.Element("root") with fr.FileReader(filename) as civ5Save: parse_base(civ5Save, root) parse_compressed_payload(civ5Save, root)
def run(self): self.loading() for f in self.javaFiles: fileReader = FileReader(f) found = Parser.finder( fileReader, [[Parser.findVarName, (['KeyGenerator '], None)], [Parser.findVarName, (['SecureRandom '], None)], [Parser.findVarName, (['KeyGenerator.getInstance'], None)]]) keyGenerator = Parser.setScopesWith(found[2], found[0]) secureRandom = found[1] keyGenerator = Parser.setScopes(keyGenerator) secureRandom = Parser.setScopes(secureRandom) In, NotIn = Parser.scopeReachable(keyGenerator, secureRandom) # Set log msg In = Parser.setMsg(In, R.OK) NotIn = Parser.setMsg(NotIn, R.WARNING, self.errMsg) self.updateOWN(f, In, NotIn, (len(NotIn) == 0 and len(In) == 0)) self.loading() fileReader.close() self.store(22, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category, False, [self.errMsg]) self.display(FileReader)
def run(self): self.loading() for f in self.javaFiles: fileReader = FileReader(f) found = Parser.finder( fileReader, [[Parser.findVarName, (['HttpsURLConnection '], None)], [Parser.findObjName, ('setHostnameVerifier', None)]]) httpsVars = found[0] hostnameVerifier = found[1] httpsVars = Parser.setScopes(httpsVars) NotIn, In = Parser.diff(httpsVars, hostnameVerifier) # Set log msg In = Parser.setMsg(In, R.OK) NotIn = Parser.setMsg(NotIn, R.CRITICAL, self.errMsg) self.updateOCN(f, In, NotIn, (len(In) == 0 and len(NotIn) == 0)) self.loading() fileReader.close() self.store(25, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category, False, [self.errMsg]) self.display(FileReader)
def run(self): self.loading() for f in self.javaFiles: fileReader = FileReader(f) found = Parser.finder(fileReader, [[Parser.findArgName, ('Cipher.getInstance', 1, None)], [Parser.findVarName, (['Cipher '], None)], [Parser.findVarName, (['Cipher.getInstance("PBE'], None)], [Parser.findObjName, ('init', None)]]) NotIn = found[0] cipher = found[1] cipherPbe = found[2] cipherInit = found[3] cipher = Parser.setScopes(cipher) cipherPbe, other = Parser.diff(cipher, cipherPbe) In, NotIn2 = Parser.diff(cipherPbe, cipherInit) # Set log msg In = Parser.setMsg(In, R.OK) NotIn = Parser.setMsg(NotIn, R.CRITICAL, self.errMsg1) NotIn2 = Parser.setMsg(NotIn2, R.CRITICAL, self.errMsg2) self.updateOCN(f, In, NotIn + NotIn2, (len(NotIn + NotIn2) == 0 and len(In) == 0)) self.loading() fileReader.close() self.store(30, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category, True, [self.errMsg2]) self.display(FileReader)
def searchPermissionChecking(self, serviceName): self.filter('android.app.Service') self.loading() for f in self.javaFiles: fileReader = FileReader(f) listClss, listFunc = Parser.getClassNFunc(fileReader) whitelist = ["checkCallingPermission(", "checkCallingPermission ("] for clss in listClss: if serviceName.split('.')[-1] in clss[R.INSTR]: isOk = False for func in listFunc: if func[R.CLASSID] == clss[R.CLASSID]: if any(elem in func[R.INSTR] for elem in whitelist): isOk = True break return isOk self.loading() fileReader.close() return False
def parse(filename): out = odict() with fr.FileReader(filename) as f: out['base'] = parse_base(f) out['dlc'] = parse_dlcs(f) out['blocks'] = parse_blocks(f) out['compressed'] = parse_compressed(f) return out
def fetch_data(self): array1 = {} for i in range(0, len(self.tblname)): if not (self.tblname[i] in self.database.keys()): filer = FileReader(self.tblname[i]) filer.fileRead() array1 = filer.hashData() self.database[self.tblname[i]] = array1
def __init__(self, base_dir): super().__init__() self.file_reader = FileReader.FileReader() self.rst_renderer = RSTRenderer.RSTRenderer() self.base_dir = base_dir self.static_dir = base_dir + 'static/' self.pages_dir = base_dir + 'static/rst/'
def run(self): self.loading() if self.manifest != None: xmlReader = XmlReader(self.manifest) # Check if READ_EXTERNAL_STORAGE is in manifest file permissions = xmlReader.getArgsTag("uses-permission") readOnExternalStorage = self.checkReadOnExternalStorage( xmlReader, permissions) if readOnExternalStorage: filt = Filter(self.directory, [ 'android.content.Context', 'android.content.*', 'android.*', 'android', 'android.content' ]) javaFiles = filt.execute() if len(javaFiles) > 0: self.maxFiles = len(javaFiles) else: self.loading() self.updateN() for f in javaFiles: fileReader = FileReader(f) found = Parser.finder( fileReader, [[Parser.findLine, ([['getExternalFilesDir(']], None)], [Parser.findLine, ([['heck', 'alidity']], None)]]) inStream = found[0] validator = found[1] # Check if each FileInputStream have a function which check validity of data in its scope In, NotIn = self.checkValidity(inStream, validator) # Set log msg In = Parser.setMsg(In, R.OK) NotIn = Parser.setMsg(NotIn, R.WARNING, self.errMsg) self.updateOWN(f, In, NotIn, (len(NotIn) == 0 and len(In) == 0)) self.loading() fileReader.close() else: self.loading() self.updateN() xmlReader.close() self.store(14, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category) self.display(FileReader)
def parse(filename): """ Parses the save file and transforms it to xml """ root = ET.Element("root") with fr.FileReader(filename) as civ5Save: parse_base(civ5Save, root) parse_compressed_payload(civ5Save, root) tree = ET.ElementTree(root) tree.write(filename + '.transformed.xml')
def openfiles(self): #metoda osSpecificFiles = [] #konwertowanie ścieżek do plików na format specyficzny dla danego systemu operacyjnego root = filedialog.askdirectory( initialdir=".", title="Wybierz folder", ) for path, subdirs, files in os.walk(root): for name in files: name = os.path.join(path, name) file = os.path.abspath(name) osSpecificFiles.append(file) fr = filereader.FileReader() #inicjowanie klasy fileReader fr.readFiles(osSpecificFiles, root)
def main(): #fileReader = FileReader.FileReader("testFile.txt") fileReader = FileReader.FileReader("Main.jack") tokenizer = Tokenizer.Tokenizer(fileReader) while not tokenizer.done: tokenizer.getToken() tokenizer.fillDict() #tokenizer.printFormatted() tokenizer.printTokens() tokenizer.toFile("MainT.xml") fileReader = FileReader.FileReader("SquareGame.jack") tokenizer = Tokenizer.Tokenizer(fileReader) while not tokenizer.done: tokenizer.getToken() tokenizer.fillDict() # tokenizer.printFormatted() tokenizer.printTokens() tokenizer.toFile("SquareGameT.xml")
def run(self): self.loading() for f in self.javaFiles: fileReader = FileReader(f) found = Parser.finder( fileReader, [[Parser.findArgName, ('Cipher.getInstance', 0, None)], [Parser.findArgName, ('MessageDigest.getInstance', 0, None)], [Parser.findArgName, ('Mac.getInstance', 0, None)], [Parser.findArgName, ('Signature.getInstance', 0, None)]]) cipher = found[0] message = found[1] mac = found[2] sign = found[3] In, NotIn = self.checkCryptoArg(cipher, [['AES', 'CBC'], ['AES', 'GCM']]) tmp1, tmp2 = self.checkCryptoArg(message, [['SHA-2'], ['SHA2']]) In += tmp1 NotIn += tmp2 tmp1, tmp2 = self.checkCryptoArg( mac, [['SHA-2', 'HMAC'], ['SHA2', 'HMAC']]) In += tmp1 NotIn += tmp2 tmp1, tmp2 = self.checkCryptoArg( sign, [['SHA-2', 'ECDSA'], ['SHA2', 'ECDSA']]) In += tmp1 NotIn += tmp2 # Set log msg In = Parser.setMsg(In, R.OK) NotIn = Parser.setMsg(NotIn, R.WARNING, self.errMsg) self.updateOWN(f, In, NotIn, (len(NotIn) == 0 and len(In) == 0)) self.loading() fileReader.close() self.store(29, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category, True) self.display(FileReader)
def __init__(self, xmlDoc, searchTags=None): self.reader = FileReader.FileReader(xmlDoc) self.ILLEGALCHARS = set(["\t", "\n", "\r"]) if searchTags: self.searchTags = searchTags # user specified search tags else: self.searchTags = set( ["seg-source", "mrk", "target", "source", "st"] ) # necessary source tags to find SDLXLIFF and XLIFF source/target segs self.tagStack = [] # keep track of embedded tag tree self.charBuffer = "" # for keeping track of '>' and '<' and '/' once char has been read in from file reader
def run(self): self.loading() for f in self.javaFiles: fileReader = FileReader(f) found = Parser.finder(fileReader, [[Parser.findVarName, (['.openConnection('], None)], [Parser.findVarName, (['HttpsURLConnection '], None)], [Parser.findObjName, ('setSSLSocketFactory', None)] ]) # Get all variables which use 'openConnection' method openConnections = found[0] # Get all variables names which are 'HttpsURLConnection' httpsVars = found[1] # Get all variables which use 'setSSLSocketFactory' varWithSocketFactory = found[2] # Set scope for variable declared with https httpsVars = Parser.setScopes(httpsVars) # Check if all 'openConnection' method used are for an 'HttpsURLConnection' variable In, NotIn = Parser.diff(httpsVars, openConnections, True) # Set log msg NotIn = Parser.setMsg(NotIn, R.CRITICAL, self.errMsg1) # Check if all 'HttpsURLConnection' variables call 'setSSLSocketFactory' method: a TrustManager must be used ! In, NotIn2 = Parser.diff(In, varWithSocketFactory) # Check if variables which call 'openConnection' is done in a 'try{}catch{}' In2, NotIn2 = self.remove_trycatch(NotIn2) In = In + In2 In = Parser.setMsg(In, R.OK) NotIn2 = Parser.setMsg(NotIn2, R.CRITICAL, self.errMsg2) NotIn = NotIn + NotIn2 self.updateOCN(f, In, NotIn, (len(openConnections) == 0)) self.loading() fileReader.close() self.store(5, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category) self.display(FileReader)
def run(self): self.loading() for f in self.javaFiles: fileReader = FileReader(f) found = Parser.finder(fileReader, [[Parser.findLine, ([['.moveSharedPreferencesFrom'], ['.moveDatabaseFrom']], None)]])[0] # Set log msg found = Parser.setMsg(found, R.WARNING, self.errMsg) self.updateWN(f, found) self.loading() fileReader.close() self.store(31, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category, True) self.display(FileReader)
def run(self): self.loading() for f in self.javaFiles: fileReader = FileReader(f) found = Parser.finder(fileReader, [[Parser.findLine, ([['.getCacheDir()'], ['.getExternalCacheDir()']], None)]])[0] # Set log msg found = Parser.setMsg(found, R.WARNING, self.errMsg) self.updateWN(f, found) self.loading() fileReader.close() self.store(11, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category, True) self.display(FileReader)
def run(self): self.loading() for f in self.javaFiles: fileReader = FileReader(f) found = Parser.finder(fileReader, [[Parser.findVarName, (['Intent '], None)], [Parser.findObjName, ('setData', None)], [Parser.findObjName, ('addFlags', None)]]) # Get all intents names intents = found[0] # Get all intents which use 'setData' method intentsWithSetData = found[1] # Get all intents which use 'addFlags' method intentsWithAddFlags = found[2] intents = Parser.setScopes(intents) intentsWithSetData = Parser.setScopesWith(intentsWithSetData, intents) intentsWithAddFlags = Parser.setScopesWith(intentsWithAddFlags, intents) # Check arg given to 'setData' In, NotIn = self.checkSetDataArg(fileReader, intentsWithSetData) # Set log msg NotIn = Parser.setMsg(NotIn, R.CRITICAL, self.errMsg1) # Check arg given to 'addFlags' In, NotIn2 = self.checkAddFlagsArg(In, intentsWithAddFlags) # Set log msg NotIn2 = Parser.setMsg(NotIn2, R.CRITICAL, self.errMsg2) NotIn = NotIn + NotIn2 self.updateOCN(f, In, NotIn, (len(NotIn) == 0 and len(In) == 0)) self.loading() fileReader.close() self.store(9, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category, False, [self.errMsg2]) self.display(FileReader)
def run(self): self.loading() for f in self.javaFiles: fileReader = FileReader(f) # Look for depreciated functions found = Parser.finder(fileReader, [[Parser.findLine, ([['DexClassLoader', 'new']], None)]])[0] # Set log msg found = Parser.setMsg(found, R.CRITICAL, self.errMsg) self.updateCN(f, found) self.loading() fileReader.close() self.store(24, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category, True) self.display(FileReader)
def run(self): self.loading() for f in self.javaFiles: fileReader = FileReader(f) found = Parser.finder(fileReader, [[Parser.findVarName, (['SSLSocket '], None)], [Parser.findVarName, (['SSLSession '], None)], [Parser.findVarName, (['getSession()'], None)], [Parser.findObjName, ('getSession', None)], [Parser.findVarName, (['HostnameVerifier '], None)], [Parser.findVarName, (['HttpsURLConnection.getDefaultHostnameVerifier'], None)]]) sslSocket = found[0] sslSession = found[1] getSessionName = found[2] getSessionObj = found[3] hostnameVerifier = found[4] defaultHostnameVerifier = found[5] sslSocket = Parser.setScopes(sslSocket) sslSession = Parser.setScopes(sslSession) hostnameVerifier = Parser.setScopes(hostnameVerifier) # get SSLSocket which call and don't call getSession method tmp, NotIn = Parser.diff(sslSocket, getSessionObj) # get HostnameVerifier which call or not call 'getDefaultHostnameVerifier' host, NotIn2 = Parser.diff(hostnameVerifier, defaultHostnameVerifier) In, NotIn3 = self.checkIfVerifyIsCalled(fileReader, host, sslSession) In = Parser.setMsg(In, R.OK) NotIn = Parser.setMsg(NotIn + NotIn3, R.CRITICAL, self.errMsg) NotIn2 = Parser.setMsg(NotIn2, R.CRITICAL, self.errMsg2) self.updateOCN(f, In, NotIn + NotIn2, (len(In) == 0 and len(NotIn + NotIn2) == 0)) self.loading() fileReader.close() self.store(26, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category, False, [self.errMsg]) self.display(FileReader)
def run(self): self.loading() # Check if Google Play Services is used if os.path.isdir(self.directory + '/sources/com/google/android/gms'): for f in self.javaFiles: fileReader = FileReader(f) search = Parser.finder(fileReader, [[Parser.findArgName, ('ProviderInstaller.installIfNeededAsync', 0, None)], [Parser.findArgName, ('ProviderInstaller.installIfNeeded', 0, None)]]) search = search[0] + search[1] if len(search) > 0: # Case where it's OK search = Parser.setMsg(search, R.OK) self.updateON(f, search) if len(search) > 0: self.loading(True) break else: self.loading() fileReader.close() # Case where there is no call to installIfNeededAsync or installIfNeeded if len(self.results) == 0: elem = {} elem[R.INSTR] = '' search = [elem] search = Parser.setMsg(search, R.CRITICAL, self.errMsg) self.updateC('nothing', search) else: self.updateN() self.store(13, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category) self.display(FileReader)
def run(self): self.loading() for f in self.javaFiles: fileReader = FileReader(f) found = Parser.finder( fileReader, [[Parser.findVarName, (['Intent '], None)], [Parser.findVarName, (['Intent', 'new'], None)], [Parser.findArgName, ('bindService', 0, None)], [Parser.findArgName, ('startService', 0, None)], [Parser.findArgName, ('sendOrderedBroadcast', 0, None)]]) intents = found[0] intentsInstatiation = found[1] fctCallingIntent = found[2] + found[3] + found[4] intents = Parser.setScopes(intents) intentsInstatiation = Parser.setScopesWith(intentsInstatiation, intents) # 'In' will contain all intents used by 'bindService', 'startService’, 'sendOrderedBroadcast' or 'startActivity' In, NotIn = Parser.diff(intentsInstatiation, fctCallingIntent) # Check if intents are explicit or implicit NotIn = self.checkIfExplicit(In) # Case where intent is instantiated in an argument position NotIn2 = self.checkArg(fctCallingIntent) NotIn = NotIn + NotIn2 # Set log msg NotIn = Parser.setMsg(NotIn, R.CRITICAL, self.errMsg) self.updateCN(f, NotIn) self.loading() fileReader.close() self.store(18, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category, False, [self.errMsg]) self.display(FileReader)
def run(self): self.loading() for f in self.javaFiles: fileReader = FileReader(f) found = Parser.finder(fileReader, [[ Parser.findLine, ([['.createDeviceProtectedStorageContext']], None) ]])[0] # Set log msg found = Parser.setMsg(found, R.WARNING, self.errMsg) self.updateWN(f, found) self.loading() fileReader.close() self.store(32, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category, True) self.display(FileReader)
def run(self): self.loading() for f in self.javaFiles: fileReader = FileReader(f) listClss, listFunc = Parser.getClassNFunc(fileReader) In, NotIn = self.check(listClss, listFunc) # Set log msg In = Parser.setMsg(In, R.OK) NotIn = Parser.setMsg(NotIn, R.CRITICAL, self.errMsg) self.updateOCN(f, In, NotIn, (len(In) == 0 and len(NotIn) == 0)) self.loading() fileReader.close() self.store(17, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category) self.display(FileReader)
def run(self): self.loading() for f in self.javaFiles: fileReader = FileReader(f) # Look for depreciated functions found = Parser.finder(fileReader, [[ Parser.findLine, ([['INADDR_ANY'], ['localhost'], ['127.0.0.1']], True, None) ]])[0] # Set log msg found = Parser.setMsg(found, R.WARNING, self.errMsg) self.updateWN(f, found) self.loading() fileReader.close() self.store(19, self.AndroidOkMsg, self.AndroidErrMsg, self.AndroidText, self.category, True) self.display(FileReader)