לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #9  
ישן 03-07-2009, 21:48
  Dark Knight Dark Knight אינו מחובר  
 
חבר מתאריך: 30.07.05
הודעות: 949
שלח הודעה דרך ICQ אל Dark Knight
בתגובה להודעה מספר 1 שנכתבה על ידי boze שמתחילה ב "עזרה ביצרית Brutal force בשפת C על קובץ"

המ.. הצורה הכי פשוטה שאני יכול לחשוב עליה היא משהו בסגנון הזה:
קוד PHP:
 #include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define PASSWORD_LEN 8
#define CMD_LEN 256

#define INPUT_FROM_COMMAND_LINE 1
#define INPUT_FROM_STDIO 2
// Choose this define by the way your program behaves:
#define INPUT INPUT_FROM_STDIO

void NextPassword(char str[]) { // you should replace this, it's a stub func'
    
int i;
    for (
0PASSWORD_LEN; ++i) {
        
str[i] = 'a' rand()%('z' 'a');
    }
    
str[PASSWORD_LEN] = '\0';
}

int IsFinished(void) { // also a stub, needs replacing
    
static int i 0;   
    if (
i++ < 10) return 0;
    return 
1;
}

int main(int argccharargv[]) {
    
char pass[PASSWORD_LEN+1];
    
char cmd[CMD_LEN];
    
    if (
argc != 2) {
        
printf("Error: Wrong arguments\n Correct form: %s <program>\n"argv[0]);
        return 
0;   
    }
    
    while(!
IsFinished()) {
        
NextPassword(pass);
#if INPUT == INPUT_FROM_COMMAND_LINE
        
sprintf(cmd"%s %s"argv[1], pass);
#else
        
sprintf(cmd"echo %s | %s"passargv[1]);
#endif
        
system(cmd);
    }
    
printf("finished!\n");
    return 
0;   



https://2009-uploaded.fresh.co.il/2009/07/03/77531184.c
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #11  
ישן 15-07-2009, 13:48
  Dark Knight Dark Knight אינו מחובר  
 
חבר מתאריך: 30.07.05
הודעות: 949
שלח הודעה דרך ICQ אל Dark Knight
בתגובה להודעה מספר 10 שנכתבה על ידי boze שמתחילה ב "הסקריפט שלך קצת מסובך לי"

אם היית מנסה להריץ את הקוד היית מגלה שבהרצה הוא מציג לך שגיאה שהזנת פרמטרים לא תקינים.
הקוד מצפה לקלט ממערכת ההפעלה - את התוכנה אותה הוא מנסה לפרוץ. ההפעלה אמורה להיות:
קוד:
myprogram.exe prog_to_crack.exe


כלומר תאלץ להפעיל את התוכנה בעזרת חלון command prompt.
בכשר לדברים שאתה צריך לשנות, הגדרתי את רובם בהערות:
אתה צריך להחליף את הפונקציה IsFinished בפונקציה שמחזירה true אם סיימת להזין סיסמאות ו-false אם יש עוד סיסמאות להזנה.
אתה צריך להחליף את הפונקציה NextPassword בפונקציה שמציבה לתוך הארגומנט שלה, str, את הסיסמא הבאה, או לשנות את המנגנון כדי שהלולאה ב-main תתבצע באופן תקין אך דומה.

הדבר האחרון שעשיתי גנרי ותצטרך לשנות הוא בתלות בקובץ שאתה מנסה לפרוץ - אם הקובץ מופעל עם הסיסמא כארגומנט של התוכנה, כלומר prog_to_crack.exe 123567 אז אתה צריך את
קוד PHP:
 #define INPUT INPUT_FROM_COMMAND_LINE 

אם התוכנה מציגה בקשה לקלט ומצפה שהסיסמה תוזן מהמקלדת, אתה צריך להשאיר אותו כמו שהוא:
קוד PHP:
 #define INPUT INPUT_FROM_STDIO 


רק שים לב שכרגע לא גרמתי לתוכנה לעצור אם היא מנחשת את הסיסמה הנכונה, זה דורש קצת יותר משחק...
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.


נערך לאחרונה ע"י Dark Knight בתאריך 15-07-2009 בשעה 13:52.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #13  
ישן 17-07-2009, 12:52
  Dark Knight Dark Knight אינו מחובר  
 
חבר מתאריך: 30.07.05
הודעות: 949
שלח הודעה דרך ICQ אל Dark Knight
בתגובה להודעה מספר 12 שנכתבה על ידי boze שמתחילה ב "איכן אני מחליף לשם של הקובץ..."

אוקי, אז קצת הסבר:
קוד:
#include <stdlib.h> #include <time.h>


הקוד הזה מצרף 2 ספריות שבהן השתמשתי בקוד, בספריות אלו משתמשים כדי ליצור אקראיות שבה השתמשתי בפונקציה NextPassword. הקוד שלי לא באמת מייצר את הסיסמאות אלא רק בנוי לגמרי כדי שאוכל לוודא שאין בו שגיאות סינטקס אז בניתי 2 פונקציות:
NextPassword שמייצרת סיסמא מתווים אקראיים באורך של:
קוד:
#define PASSWORD_LEN 8


IsFinished שמחזירה 1 או 0. הפונקציה בנויה ככה שהיא תחזיר 1 (true) בפעם ה-10 שתקרא.

את הפונקציות הללו אתה תצטרך להחליף בפונקציות ה-brutal force שלך, או להכניס את הקוד ישירות ללולאה שרצה ב-main.

ההגדרה
קוד:
#define CMD_LEN 256

זו סתם הגדרה שרירותית לאורך מירבי של מחרוזת. אני רגיל עוד מפסקל שמחרוזת היא בת 256 תווים אז זה האורך שאני מגדיר בד"כ, אם היית עובר על הקוד היית רואה שאת המחרוזת cmd אני מגדיר בגודל הזה.

כעת, אני לא ידעתי מה יהיה סוג הקובץ אותו אתה מנסה לפרוץ, כמו שאמרתי קיימות 2 אפשרויות סבירות:
1) התוכנה מקבלת את הסיסה כארגומנט הפעלה, משמע:
קוד:
> test.exe password

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.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #14  
ישן 17-07-2009, 13:04
  Dark Knight Dark Knight אינו מחובר  
 
חבר מתאריך: 30.07.05
הודעות: 949
שלח הודעה דרך ICQ אל Dark Knight
בתגובה להודעה מספר 13 שנכתבה על ידי Dark Knight שמתחילה ב "אוקי, אז קצת הסבר: ..."

בקשר להפעלת התוכנה:
יצרתי 2 קבצים שידמו את הקובץ שאתה מנסה לפרוץ:
קוד PHP:
 // File: fromio.c
#include <stdio.h>

int main(void) {
    
char i[200];
    
scanf("%s"i);
    
printf("got: %s\n"i);
    return 
0;


התוכנית מצפה לקבל את ה'סיסמה' מהמקלדת.

קוד PHP:
 // File: from_line.c
#include <stdio.h>

int main(int argccharargv[]) {
    
printf("got: %s\n"argv[1]);
    return 
0;



התוכנה מצפה לקבל את ה'סיסמה' משורת הפקודה.

עכשיו אני מקמפל את התוכנה שלי עם האפשרות:
קוד:
#define INPUT INPUT_FROM_COMMAND_LINE


ומפעיל באופן הבא:
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

עכשיו אני מקפמל את התוכנה שלי מחדש עם האפשרות
קוד:
#define INPUT INPUT_FROM_STDIO


ומפיל באותו האופן:
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

כפי שאתה רואה התוכנה שלי מייצגרת את אותן 10 הסיסמאות, כי שכחתי לאתחל את מנוע האקראיות, אבל זה גם לא משנה בכל מקרה.
מקווה שעכשיו ההפעלה של זה ברורה יותר.
ההדפסות הן של התוכנות המופעלות, from_line ו-fromio.
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #17  
ישן 20-07-2009, 09:34
  Dark Knight Dark Knight אינו מחובר  
 
חבר מתאריך: 30.07.05
הודעות: 949
שלח הודעה דרך ICQ אל Dark Knight
בתגובה להודעה מספר 15 שנכתבה על ידי boze שמתחילה ב "כמה שאלות נוספות"

אני יודע C טוב מ-2 סיבות עיקריות:
1) למדתי את השפה - קורס מבוא למדמ"ח שלימד את השפה ברמת התחביר וקורס במבוא לתכנות מערכות שלימד את שפת C ושפת ++C ברמה מתקדמת יותר
2) ה-מ-ו-ן תרגול וניסיון, המון תוכנות ותרגילים שהייתי צריך לכתוב ולכן נאלצתי לחפש במאגרי ידע את הדברים שאני זקוק להם. תכנות בכלל ו-C בפרט לומדים דרך האצבעות ומאחורי יש כמה עשרות אלפי שורות קוד (ואם לאמר את האמת זה די מעט ואני לא חושב שאני יודע C עד כדי כך טוב...)

אם אתה עדין לא מבין מה הולך בקוד שלי אני ממליץ לך בחום ללכת ל-google ולהתחיל לחפש:
C preprocessor
C standard libraries
C PRNG engine או C Pseudo random numbers generator
C command line arguments
Windows pipelines
C system function

ובסופו של דבר, אולי גם
C documentation
כי עושה הרושם שאתה לא קורא הערות בקוד...

נ.ב
ברב המוחלט של המקרים, גם תוצאות שמתייחסות ל-++C יוכלו לעזור לך בתחומים שציינתי
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.


נערך לאחרונה ע"י Dark Knight בתאריך 20-07-2009 בשעה 09:39.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 11:34

הדף נוצר ב 0.08 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר