17-07-2009, 12:52
|
|
|
חבר מתאריך: 30.07.05
הודעות: 949
|
|
אוקי, אז קצת הסבר:
קוד:
#include <stdlib.h>
#include <time.h>
הקוד הזה מצרף 2 ספריות שבהן השתמשתי בקוד, בספריות אלו משתמשים כדי ליצור אקראיות שבה השתמשתי בפונקציה NextPassword. הקוד שלי לא באמת מייצר את הסיסמאות אלא רק בנוי לגמרי כדי שאוכל לוודא שאין בו שגיאות סינטקס אז בניתי 2 פונקציות:
NextPassword שמייצרת סיסמא מתווים אקראיים באורך של:
קוד:
#define PASSWORD_LEN 8
IsFinished שמחזירה 1 או 0. הפונקציה בנויה ככה שהיא תחזיר 1 (true) בפעם ה-10 שתקרא.
את הפונקציות הללו אתה תצטרך להחליף בפונקציות ה-brutal force שלך, או להכניס את הקוד ישירות ללולאה שרצה ב-main.
ההגדרה
זו סתם הגדרה שרירותית לאורך מירבי של מחרוזת. אני רגיל עוד מפסקל שמחרוזת היא בת 256 תווים אז זה האורך שאני מגדיר בד"כ, אם היית עובר על הקוד היית רואה שאת המחרוזת cmd אני מגדיר בגודל הזה.
כעת, אני לא ידעתי מה יהיה סוג הקובץ אותו אתה מנסה לפרוץ, כמו שאמרתי קיימות 2 אפשרויות סבירות:
1) התוכנה מקבלת את הסיסה כארגומנט הפעלה, משמע:
2) התוכנה מקבלת את הסיסמה כקלט מהמקלדת במהלך הפעלתה, משמע:
קוד:
> test.exe
Please enter password: password
Authorized!
לצורה הראשונה קוראים INPUT_FROM_COMMAND_LINE ולצורה השניה קוראים INPUT_FROM_STDIO, אם כי נכון יותר אולי היה לקרוא לזה STDI, לא משנה.
זו בסה"כ ההגדרה של
קוד:
#define INPUT_FROM_COMMAND_LINE 1
#define INPUT_FROM_STDIO 2
כאשר לכל סוג הגדרה נתתי מספר.
כעת, כמשתמש נתתי לך את האפשרות לבחור באיזה אופן התוכנה תעבוד ע"י הפרמטר INPUT.
קוד:
// Choose this define by the way your program behaves:
#define INPUT INPUT_FROM_STDIO
כמו שזה כתוב כרגע, התוכנה מצפה לאפשרות השניה, כלומר התוכנה תעביר את הקלט לתוכנה דרך ה"מקלדת", אם תשנה את ההגדרה ל-:
קוד:
#define INPUT INPUT_FROM_COMMAND_LINE
התוכנה תעביר את הסיסמה דרך שורת הפקודה.
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.
נערך לאחרונה ע"י Dark Knight בתאריך 17-07-2009 בשעה 12:54.
|