void log_bssid(wlan_packet_list* bssid) { FILE *fp; time_t now; int encryption; fp = fopen(logfile,"a"); now = time(&now); fprintf(fp, "\n"); print_hex_array(fp, bssid->frame.bssid,6); fprintf(fp, "\t%d", bssid->frame.key); fprintf(fp, "\t"); print_hex_array(fp, bssid->secret, bssid->encryption&0x0F); if ((bssid->encryption&0x60) == MODE_WEP) fprintf(fp, "\t%s", bssid->secret); else if ((bssid->encryption&0x60) == MODE_KEYGEN) fprintf(fp, "\t%s", bssid->nwep_secret); fprintf(fp, "\t%d Bit", ((bssid->encryption&0x0F)+3)*8); if ((bssid->encryption&0x60) == MODE_KEYGEN) fprintf(fp, " (KEYGEN)"); fprintf(fp, "\t%d sec", (int)difftime(now, start_time)); fclose(fp); }
void wlan_key_cracked() { // write result to logfile log_bssid(current_packet); // display information on screen printf("\n++++++++++ Packet decrypted! ++++++++++\n"); // display bssid and key printf("BSSID: "); print_hex_array(stdout, current_packet->frame.bssid,6); printf("/ Key %d", current_packet->frame.key); // display wepkey printf("\tWepKey: "); print_hex_array(stdout, current_packet->secret, current_packet->encryption&0x0F); if ((current_packet->encryption&0x60) == MODE_WEP) printf("(%s)", current_packet->secret); else if ((current_packet->encryption&0x60) == MODE_KEYGEN) printf("(%s)", current_packet->nwep_secret); // display encryption printf("\nEncryption: %d Bit", ((current_packet->encryption&0x0F)+3)*8); if ((current_packet->encryption&0x60) == MODE_KEYGEN) printf(" (KEYGEN)"); printf("\n"); }
int media_read(uint32 sector, uint8 *buffer, uint32 sector_count) { int ret; uint32 i; direct_access_status_sector * dass; dass = (direct_access_status_sector *)buffer; #ifdef DEBUG dbg_printf("media_read sector : 0x%.8X, cnt : %d \n",sector,sector_count); #endif set_char_pos(&g_ui_ctx,g_ui_ctx.screen_txt_xsize - 1, 0); print_char(&g_ui_ctx, 10, INVERTED); for(i=0;i<sector_count;i++) { do { if((sector-last_setlbabase)>=8) { ret = setlbabase(sector); if( ret != ERR_NO_ERROR ) return 0; } ret = readsector(0,buffer,0); if( ret != ERR_NO_ERROR ) { hxc_printf_box(&g_ui_ctx,"ERROR: Read ERROR ! fsector %d [Err %d]",(sector-last_setlbabase)+1,ret); return 0; } last_setlbabase = L_INDIAN(dass->lba_base); }while((sector-L_INDIAN(dass->lba_base))>=8); ret = readsector((unsigned char)((sector-last_setlbabase)+1),&buffer[i*512],0); if( ret != ERR_NO_ERROR ) { hxc_printf_box(&g_ui_ctx,"ERROR: Read ERROR ! fsector %d [Err %d]",(sector-last_setlbabase)+1,ret); return 0; } sector++; #ifdef DEBUG print_hex_array(buffer,512); #endif } set_char_pos(&g_ui_ctx,g_ui_ctx.screen_txt_xsize - 1, 0); print_char(&g_ui_ctx, ' ', INVERTED); return 1; }
int media_write(uint32 sector, uint8 *buffer, uint32 sector_count) { int ret; uint32 i; #ifdef DEBUG dbg_printf("media_write : 0x%.8X\n",sector); #endif set_char_pos(&g_ui_ctx,g_ui_ctx.screen_txt_xsize - 1, 0); print_char(&g_ui_ctx, 1, INVERTED); for(i=0;i<sector_count;i++) { if( sector - last_setlbabase >=8) { last_setlbabase=sector; ret = setlbabase(sector); if( ret != ERR_NO_ERROR ) return 0; } ret = writesector((unsigned char)((sector-last_setlbabase)+1),buffer); if( ret != ERR_NO_ERROR ) { hxc_printf_box(&g_ui_ctx,"ERROR: Write sector ERROR !"); return 0; } sector++; } set_char_pos(&g_ui_ctx,g_ui_ctx.screen_txt_xsize - 1, 0); print_char(&g_ui_ctx, ' ', INVERTED); #ifdef DEBUG print_hex_array(buffer,512); #endif return 1; }
void log_uncracked(wlan_packet_list* list) { FILE *fp; time_t now; fp = fopen(logfile,"a"); now = time(&now); while (list->next != NULL) { if (!list->cracked) { fprintf(fp, "\n"); print_hex_array(fp, list->frame.bssid, 6); fprintf(fp, "\t%d", list->frame.key); fprintf(fp, "\tnot cracked\t\t%d sec", (int)difftime(now, start_time)); } list = list->next; } fprintf(fp,"\n"); fclose(fp); }