לאחר שנחשפתי לפתרון המוצלח של @מדהים - AppCode בניתי סקריפט קטן (כמובן בעזרת AI) שעושה את אותה עבודה אבל בשתי שניות וללא צורך בחיוג לשום מערכת!
הפתרון הוא בעצם קובץ exe שנמצא אצלכם באונקי או בכל מקום אחר ויוצר את קוד האימות בשתי שניות!
כמו אצל @מדהים גם כאן הפתרון מועיל רק למי שכבר יש לו חשבון והוא נמצא בתוכו!!!
אם הקובץ נופל לידים זרות אין להם מה לעשות איתו בלי הסיסמא של החשבון
בכל הדרכים קו הסיום הוא יצירת קובץ exe שבהפעלתו הוא ייצר עבורכם קוד וישמור אותו ב"לוח" המחשב
לכם רק נותר ללחוץ קונטרול+V בחלון של גוגל...
ועכשיו - להכנת הקובץ:
דרך 1 - כלי מוכן
הורידו את הכלי הזה
מחולל מפתחות TOTP.exe
הפעילו, הדביקו את הקוד שקיבלתם מגוגל וקובץ הexe המדובר יווצר ליד הכלי
הכלי הוא בעצם מימוש לexe של הדרך השלישית (C#)
אם תרצו אייקון מותאם אישית שימו ליד הכלי קובץ בשם app.ico
דרך 2 (Python)
שלב 1:
צרו סוד אבטחה מגוגל (עיינו במדריך של @מדהים)
שלב 2:
הריצו ב-cmd (יש צורך בפייתון מותקן עם גישה לcmd)
pip install pyotp pyperclip pyinstaller
שלב 3:
צרו בפנקס רשימות קובץ בשם mykey.py והדביקו בו את הקוד הבא
import pyotp
import pyperclip
import sys
# הכנס את הסוד שלך כאן בתוך הגרשיים וללא רווחים
my_secret = "JBSWY3DPEHPK3PXP"
try:
# יצירת אובייקט TOTP
totp = pyotp.TOTP(my_secret)
# חישוב הקוד הנוכחי
current_code = totp.now()
# העתקה ללוח
pyperclip.copy(current_code)
except Exception as e:
# במקרה של תקלה (נדיר)
sys.exit(1)
שימו לב להכניס את ה"סוד" של גוגל, במקום המתאים וללא רווחים
שמרו את הקוד
שלב 4:
הריצו ב-cmd את הפקודה הבאה בתוך התיקיה בה שמרתם את קובץ ה-py
pyinstaller --onefile --noconsole mykey.py
לאריזה עם אייקון הכינו בתיקיה קובץ בשם icon.ico והריצו:
pyinstaller --onefile --noconsole --icon="icon.ico" mykey.py
בתיקייה בה שמרתם את קובץ ה-py תיווצר תיקיה בשם dist ובתוכה יהיה קובץ הexe
דרך 3 (#C)
צרו קובץ טקסט מהקוד הבא ותנו לו את השם והסיומת myotp.cs
(הכניסו את ה"סוד" שלכם במקום המתאים
using System;
using System.Security.Cryptography;
using System.Text;
using System.Windows.Forms;
class Program {
[STAThread]
static void Main() {
string secret = "הכניסו כאן את ה''סוד'' שלכם ללא רווחים";
try {
byte[] key = Base32Decode(secret);
long counter = DateTimeOffset.UtcNow.ToUnixTimeSeconds() / 30;
string code = GenerateTOTP(key, counter);
Clipboard.SetText(code);
} catch {}
}
static string GenerateTOTP(byte[] key, long counter) {
byte[] counterBytes = BitConverter.GetBytes(counter);
if (BitConverter.IsLittleEndian) Array.Reverse(counterBytes);
using (HMACSHA1 hmac = new HMACSHA1(key)) {
byte[] hash = hmac.ComputeHash(counterBytes);
int offset = hash[hash.Length - 1] & 0xf;
int binary = ((hash[offset] & 0x7f) << 24) |
((hash[offset + 1] & 0xff) << 16) |
((hash[offset + 2] & 0xff) << 8) |
(hash[offset + 3] & 0xff);
int otp = binary % 1000000;
return otp.ToString("D6");
}
}
static byte[] Base32Decode(string input) {
input = input.Trim().ToUpper();
var bits = "";
string alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";
foreach (char c in input) {
int val = alphabet.IndexOf(c);
if (val >= 0) bits += Convert.ToString(val, 2).PadLeft(5, '0');
}
int byteCount = bits.Length / 8;
byte[] bytes = new byte[byteCount];
for (int i = 0; i < byteCount; i++) {
bytes[i] = Convert.ToByte(bits.Substring(i * 8, 8), 2);
}
return bytes;
}
}
- הריצו ב-CMD:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /target:winexe /out:otp.exe myotp.cs
לאריזה עם אייקון הכינו בתיקיה קובץ בשם app.ico והריצו:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /target:winexe /win32icon:app.ico /out:otp.exe myotp.cs
עכשיו יש לכם ליד קובץ הקוד, את קובץ ה-exe (זעיר=5KB)
להרצת cmd בחד"מ: כתבו את הקוד כקובץ טקסט ושנו את הסיומת לbat
שמרו על הקובץ
הוא מכיל את "סוד" הגוגל שלכם
אם הוא יאבד , אין סיבה לדאגה אך מומלץ להחליף את ה"סוד"


