[kismac] [binaervarianz] r233 - in trunk: KisMAC.xcodeproj Resources/Nibs/English.lproj/PrefsAdvanced.nib Resources/Nibs/English.lproj/PrefsDriver.nib Sources/Core Sources/Preferences/PreferencePanes Sources/WaveDrivers
- From: svn@xxxxxxxxxxxxxxxx
- To: kismac@xxxxxxxxxxxxx
- Date: Tue, 24 Apr 2007 06:45:38 +0200
Author: themacuser
Date: 2007-04-24 06:45:15 +0200 (Tue, 24 Apr 2007)
New Revision: 233
Modified:
trunk/KisMAC.xcodeproj/project.pbxproj
trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/classes.nib
trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/info.nib
trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/objects.nib
trunk/Resources/Nibs/English.lproj/PrefsDriver.nib/classes.nib
trunk/Resources/Nibs/English.lproj/PrefsDriver.nib/info.nib
trunk/Sources/Core/WaveScanner.mm
trunk/Sources/Preferences/PreferencePanes/PrefsAdvanced.h
trunk/Sources/Preferences/PreferencePanes/PrefsAdvanced.m
trunk/Sources/Preferences/PreferencePanes/PrefsDriver.h
trunk/Sources/Preferences/PreferencePanes/PrefsDriver.m
trunk/Sources/WaveDrivers/WaveDriver.h
trunk/Sources/WaveDrivers/WaveDriver.m
trunk/Sources/WaveDrivers/WaveDriverKismet.h
trunk/Sources/WaveDrivers/WaveDriverKismet.m
Log:
Improvements to WaveDriverKismet (now connects on start scan, and disconnects
on stop scan) and a new driver - WaveDriverKismetDrone (you can use a kismet
drone directly, without a kismet server).
Modified: trunk/KisMAC.xcodeproj/project.pbxproj
===================================================================
--- trunk/KisMAC.xcodeproj/project.pbxproj 2007-04-22 05:32:46 UTC (rev
232)
+++ trunk/KisMAC.xcodeproj/project.pbxproj 2007-04-24 04:45:15 UTC (rev
233)
@@ -483,6 +483,10 @@
6CDAFD030AC4FA7D00A5D180 /* KismetXMLImporter.m in Sources */ =
{isa = PBXBuildFile; fileRef = 6CDAFD010AC4FA7D00A5D180 /* KismetXMLImporter.m
*/; };
6CF9EE6E0B6E9D2A00F54524 /* WaveDriverKismet.h in Headers */ =
{isa = PBXBuildFile; fileRef = 6CF9EE6C0B6E9D2A00F54524 /* WaveDriverKismet.h
*/; };
6CF9EE6F0B6E9D2A00F54524 /* WaveDriverKismet.m in Sources */ =
{isa = PBXBuildFile; fileRef = 6CF9EE6D0B6E9D2A00F54524 /* WaveDriverKismet.m
*/; };
+ 87B513670BD4ED2300DC8861 /* DriverPrefsView.h in Headers */ =
{isa = PBXBuildFile; fileRef = 87B513650BD4ED2300DC8861 /* DriverPrefsView.h
*/; };
+ 87B513680BD4ED2300DC8861 /* DriverPrefsView.m in Sources */ =
{isa = PBXBuildFile; fileRef = 87B513660BD4ED2300DC8861 /* DriverPrefsView.m
*/; };
+ 87C9272A0BAA137E0025A6AE /* WaveDriverKismetDrone.h in Headers
*/ = {isa = PBXBuildFile; fileRef = 87C927280BAA137D0025A6AE /*
WaveDriverKismetDrone.h */; };
+ 87C9272B0BAA137E0025A6AE /* WaveDriverKismetDrone.m in Sources
*/ = {isa = PBXBuildFile; fileRef = 87C927290BAA137E0025A6AE /*
WaveDriverKismetDrone.m */; };
87CEBA8209AEF03700AEB0B8 /* GrowlController.h in Headers */ =
{isa = PBXBuildFile; fileRef = 87CEBA8009AEF03700AEB0B8 /* GrowlController.h
*/; };
87CEBA8309AEF03700AEB0B8 /* GrowlController.m in Sources */ =
{isa = PBXBuildFile; fileRef = 87CEBA8109AEF03700AEB0B8 /* GrowlController.m
*/; };
8D1107280486CEB800E47090 /* KisMAC_Prefix.pch in Headers */ =
{isa = PBXBuildFile; fileRef = 32CA4F630368D1EE00C91783 /* KisMAC_Prefix.pch
*/; };
@@ -839,6 +843,10 @@
6CDAFD010AC4FA7D00A5D180 /* KismetXMLImporter.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= KismetXMLImporter.m; sourceTree = "<group>"; };
6CF9EE6C0B6E9D2A00F54524 /* WaveDriverKismet.h */ = {isa =
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path =
WaveDriverKismet.h; sourceTree = "<group>"; };
6CF9EE6D0B6E9D2A00F54524 /* WaveDriverKismet.m */ = {isa =
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc;
path = WaveDriverKismet.m; sourceTree = "<group>"; };
+ 87B513650BD4ED2300DC8861 /* DriverPrefsView.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
DriverPrefsView.h; sourceTree = "<group>"; };
+ 87B513660BD4ED2300DC8861 /* DriverPrefsView.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= DriverPrefsView.m; sourceTree = "<group>"; };
+ 87C927280BAA137D0025A6AE /* WaveDriverKismetDrone.h */ = {isa =
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path =
WaveDriverKismetDrone.h; sourceTree = "<group>"; };
+ 87C927290BAA137E0025A6AE /* WaveDriverKismetDrone.m */ = {isa =
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc;
path = WaveDriverKismetDrone.m; sourceTree = "<group>"; };
87CEBA8009AEF03700AEB0B8 /* GrowlController.h */ = {isa =
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path =
GrowlController.h; sourceTree = "<group>"; };
87CEBA8109AEF03700AEB0B8 /* GrowlController.m */ = {isa =
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc;
path = GrowlController.m; sourceTree = "<group>"; };
8D1107320486CEB800E47090 /* KisMAC.app */ = {isa =
PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0;
path = KisMAC.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -1154,6 +1162,8 @@
003533DB06A5DD8500AB4577 /* PreferencePanes */ = {
isa = PBXGroup;
children = (
+ 87B513650BD4ED2300DC8861 /* DriverPrefsView.h
*/,
+ 87B513660BD4ED2300DC8861 /* DriverPrefsView.m
*/,
6C1D31BE09F37BC70005A9F8 /* PrefsAdvanced.h */,
6C1D31BF09F37BC70005A9F8 /* PrefsAdvanced.m */,
003533DC06A5DD8500AB4577 /* PrefsClient.h */,
@@ -1249,6 +1259,8 @@
0035341406A5DD8500AB4577 /* WaveDriverAirport.m
*/,
00DF456108B1E969003F3C7E /*
WaveDriverAirportExtreme.h */,
00DF456208B1E969003F3C7E /*
WaveDriverAirportExtreme.m */,
+ 87C927280BAA137D0025A6AE /*
WaveDriverKismetDrone.h */,
+ 87C927290BAA137E0025A6AE /*
WaveDriverKismetDrone.m */,
0035341506A5DD8500AB4577 /* WaveDriverAtheros.h
*/,
0035341606A5DD8500AB4577 /* WaveDriverAtheros.m
*/,
0035341706A5DD8500AB4577 /* WaveDriverMacJack.h
*/,
@@ -1674,6 +1686,8 @@
6CDAFD020AC4FA7D00A5D180 /* KismetXMLImporter.h
in Headers */,
6C94AA2F0ADF3FBC001BE161 /* GPSSatInfo.h in
Headers */,
6CF9EE6E0B6E9D2A00F54524 /* WaveDriverKismet.h
in Headers */,
+ 87C9272A0BAA137E0025A6AE /*
WaveDriverKismetDrone.h in Headers */,
+ 87B513670BD4ED2300DC8861 /* DriverPrefsView.h
in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2069,6 +2083,8 @@
6CDAFD030AC4FA7D00A5D180 /* KismetXMLImporter.m
in Sources */,
6C94AA300ADF3FBC001BE161 /* GPSSatInfo.m in
Sources */,
6CF9EE6F0B6E9D2A00F54524 /* WaveDriverKismet.m
in Sources */,
+ 87C9272B0BAA137E0025A6AE /*
WaveDriverKismetDrone.m in Sources */,
+ 87B513680BD4ED2300DC8861 /* DriverPrefsView.m
in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Modified: trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/classes.nib
===================================================================
--- trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/classes.nib
2007-04-22 05:32:46 UTC (rev 232)
+++ trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/classes.nib
2007-04-24 04:45:15 UTC (rev 233)
@@ -13,6 +13,7 @@
kismetserverip = id;
kismetserverport = id;
"pr_interval" = id;
+ "show_debugmenu" = id;
};
SUPERCLASS = PrefsClient;
},
Modified: trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/info.nib
===================================================================
--- trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/info.nib
2007-04-22 05:32:46 UTC (rev 232)
+++ trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/info.nib
2007-04-24 04:45:15 UTC (rev 233)
@@ -7,7 +7,7 @@
<key>IBEditorPositions</key>
<dict>
<key>109</key>
- <string>83 159 501 569 0 0 1024 746 </string>
+ <string>165 185 501 529 0 0 1024 746 </string>
</dict>
<key>IBFramework Version</key>
<string>446.1</string>
@@ -16,6 +16,6 @@
<integer>109</integer>
</array>
<key>IBSystem Version</key>
- <string>8L127</string>
+ <string>8P135</string>
</dict>
</plist>
Modified: trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/objects.nib
===================================================================
(Binary files differ)
Modified: trunk/Resources/Nibs/English.lproj/PrefsDriver.nib/classes.nib
===================================================================
--- trunk/Resources/Nibs/English.lproj/PrefsDriver.nib/classes.nib
2007-04-22 05:32:46 UTC (rev 232)
+++ trunk/Resources/Nibs/English.lproj/PrefsDriver.nib/classes.nib
2007-04-24 04:45:15 UTC (rev 233)
@@ -20,6 +20,7 @@
enableAEForever = id;
selAddDriver = id;
selAll = id;
+ selConfigure = id;
selNone = id;
selRemoveDriver = id;
};
@@ -27,15 +28,23 @@
LANGUAGE = ObjC;
OUTLETS = {
"_aeForever" = NSButton;
+ "_chanhop" = NSBox;
"_channelSel" = NSMatrix;
"_driver" = NSPopUpButton;
"_driverTable" = NSTableView;
"_dumpDestination" = NSTextField;
"_dumpFilter" = NSMatrix;
+ "_dumpFilterBox" = NSBox;
"_firstChannel" = NSTextField;
"_frequence" = NSTextField;
+ "_globalsettings" = NSBox;
+ "_injection" = NSBox;
"_injectionDevice" = NSButton;
+ "_kdrone_settings" = NSBox;
+ "_kismet_host" = NSTextField;
+ "_kismet_port" = NSTextField;
"_removeDriver" = NSButton;
+ "_savedumpsat" = NSBox;
"_selAll" = NSButton;
"_selNone" = NSButton;
};
Modified: trunk/Resources/Nibs/English.lproj/PrefsDriver.nib/info.nib
===================================================================
--- trunk/Resources/Nibs/English.lproj/PrefsDriver.nib/info.nib 2007-04-22
05:32:46 UTC (rev 232)
+++ trunk/Resources/Nibs/English.lproj/PrefsDriver.nib/info.nib 2007-04-24
04:45:15 UTC (rev 233)
@@ -3,11 +3,11 @@
<plist version="1.0">
<dict>
<key>IBDocumentLocation</key>
- <string>133 116 356 240 0 0 1280 1002 </string>
+ <string>119 29 356 240 0 0 1024 746 </string>
<key>IBEditorPositions</key>
<dict>
<key>109</key>
- <string>392 374 495 589 0 0 1280 1002 </string>
+ <string>264 147 495 589 0 0 1024 746 </string>
</dict>
<key>IBFramework Version</key>
<string>446.1</string>
@@ -16,6 +16,6 @@
<integer>109</integer>
</array>
<key>IBSystem Version</key>
- <string>8J135</string>
+ <string>8P135</string>
</dict>
</plist>
Modified: trunk/Sources/Core/WaveScanner.mm
===================================================================
--- trunk/Sources/Core/WaveScanner.mm 2007-04-22 05:32:46 UTC (rev 232)
+++ trunk/Sources/Core/WaveScanner.mm 2007-04-24 04:45:15 UTC (rev 233)
@@ -129,18 +129,19 @@
NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
interval = [defs floatForKey:@"activeScanInterval"];
-
- while (_scanning) {
- nets = [wd networksInRange];
-
- if (nets) {
- for(i=0; i<[nets count]; i++) {
- network = [nets objectAtIndex:i];
- [_container addAppleAPIData:network];
- }
- }
- [NSThread sleepUntilDate:[NSDate
dateWithTimeIntervalSinceNow:interval]];
- }
+ if ([wd startedScanning]) {
+ while (_scanning) {
+ nets = [wd networksInRange];
+
+ if (nets) {
+ for(i=0; i<[nets count]; i++) {
+ network = [nets objectAtIndex:i];
+ [_container addAppleAPIData:network];
+ }
+ }
+ [NSThread sleepUntilDate:[NSDate
dateWithTimeIntervalSinceNow:interval]];
+ }
+ }
}
//does the actual scanning (extra thread)
@@ -204,6 +205,10 @@
} else geiger=Nil;
[wd startCapture:0];
+ if (![wd startedScanning]) {
+ goto error;
+ }
+
while (_scanning) { //this is for canceling
@try {
frame = [wd nextFrame]; //captures the next frame
(locking)
Modified: trunk/Sources/Preferences/PreferencePanes/PrefsAdvanced.h
===================================================================
--- trunk/Sources/Preferences/PreferencePanes/PrefsAdvanced.h 2007-04-22
05:32:46 UTC (rev 232)
+++ trunk/Sources/Preferences/PreferencePanes/PrefsAdvanced.h 2007-04-24
04:45:15 UTC (rev 233)
@@ -18,7 +18,8 @@
IBOutlet id pr_interval; //deauthenticate interval
IBOutlet id kismetserverip; // Kismet server IP
IBOutlet id kismetserverport; // Kismet server port
+ IBOutlet id show_debugmenu;
}
-(IBAction)setDefaults:(id)sender;
-@end
+@end
\ No newline at end of file
Modified: trunk/Sources/Preferences/PreferencePanes/PrefsAdvanced.m
===================================================================
--- trunk/Sources/Preferences/PreferencePanes/PrefsAdvanced.m 2007-04-22
05:32:46 UTC (rev 232)
+++ trunk/Sources/Preferences/PreferencePanes/PrefsAdvanced.m 2007-04-24
04:45:15 UTC (rev 233)
@@ -16,8 +16,7 @@
[bpfdevice setStringValue:[controller objectForKey:@"bpfdevice"]];
[bpfloc setStringValue:[controller objectForKey:@"bpfloc"]];
[pr_interval setIntValue:[[controller objectForKey:@"pr_interval"]
intValue]];
- [kismetserverip setStringValue:[controller
objectForKey:@"kismetserverip"]];
- [kismetserverport setIntValue:[[controller
objectForKey:@"kismetserverport"] intValue]];
+ [show_debugmenu setState:[[controller objectForKey:@"DebugMode"]
intValue]];
}
-(BOOL)updateDictionary {
@@ -26,8 +25,7 @@
[controller setObject:[bpfdevice stringValue] forKey:@"bpfdevice"];
[controller setObject:[bpfloc stringValue] forKey:@"bpfloc"];
[controller setObject:[NSNumber numberWithInt:[pr_interval intValue]]
forKey:@"pr_interval"];
- [controller setObject:[kismetserverip stringValue]
forKey:@"kismetserverip"];
- [controller setObject:[NSNumber numberWithInt:[kismetserverport
intValue]] forKey:@"kismetserverport"];
+ [controller setObject:[NSNumber numberWithInt:[show_debugmenu state]]
forKey:@"DebugMode"];
return YES;
}
@@ -42,10 +40,8 @@
[controller setObject:[bpfloc stringValue] forKey:@"bpfloc"];
} else if(sender == pr_interval) {
[controller setObject:[NSNumber numberWithInt:[pr_interval intValue]]
forKey:@"pr_interval"];
- } else if(sender == kismetserverip) {
- [controller setObject:[kismetserverip stringValue]
forKey:@"kismetserverip"];
- } else if(sender == kismetserverport) {
- [controller setObject:[NSNumber numberWithInt:[kismetserverport
intValue]] forKey:@"kismetserverport"];
+ } else if(sender == show_debugmenu) {
+ [controller setObject:[NSNumber numberWithInt:[show_debugmenu
state]] forKey:@"DebugMode"];
} else {
NSLog(@"Error: Invalid sender(%@) in setValueForSender:",sender);
}
@@ -57,8 +53,7 @@
[bpfdevice setStringValue:@"wlt1"];
[bpfloc setStringValue:@"/dev/bpf0"];
[pr_interval setIntValue:100];
- [kismetserverip setStringValue:@"127.0.0.1"];
- [kismetserverport setIntValue:2501];
+ [show_debugmenu setState:NSOffState];
}
@end
\ No newline at end of file
Modified: trunk/Sources/Preferences/PreferencePanes/PrefsDriver.h
===================================================================
--- trunk/Sources/Preferences/PreferencePanes/PrefsDriver.h 2007-04-22
05:32:46 UTC (rev 232)
+++ trunk/Sources/Preferences/PreferencePanes/PrefsDriver.h 2007-04-24
04:45:15 UTC (rev 233)
@@ -17,17 +17,27 @@
IBOutlet NSMatrix *_channelSel;
IBOutlet NSButton *_selAll;
IBOutlet NSButton *_selNone;
-
+
IBOutlet NSButton *_injectionDevice;
IBOutlet NSPopUpButton *_driver;
IBOutlet NSButton *_removeDriver;
IBOutlet NSTableView *_driverTable;
-
+
IBOutlet NSMatrix *_dumpFilter;
IBOutlet NSTextField *_dumpDestination;
+
+ IBOutlet NSTextField *_kismet_host;
+ IBOutlet NSTextField *_kismet_port;
IBOutlet NSButton *_aeForever;
+
+ IBOutlet NSBox *_chanhop;
+ IBOutlet NSBox *_kdrone_settings;
+ IBOutlet NSBox *_injection;
+ IBOutlet NSBox *_dumpFilterBox;
+ IBOutlet NSBox *_savedumpsat;
+ IBOutlet NSBox *_globalsettings;
}
- (IBAction)selAddDriver:(id)sender;
Modified: trunk/Sources/Preferences/PreferencePanes/PrefsDriver.m
===================================================================
--- trunk/Sources/Preferences/PreferencePanes/PrefsDriver.m 2007-04-22
05:32:46 UTC (rev 232)
+++ trunk/Sources/Preferences/PreferencePanes/PrefsDriver.m 2007-04-24
04:45:15 UTC (rev 233)
@@ -57,7 +57,7 @@
}
-(NSDictionary*) getCurrentSettings {
- int i = [_driverTable selectedRow];
+ int i = [_driverTable selectedRow];
if (i<0) return Nil;
@@ -69,6 +69,7 @@
bool enableChannel = NO;
bool enableInjection = NO;
bool enableDumping = NO;
+ bool enableIPAndPort = NO;
Class driverClass;
NSDictionary *d = Nil;
unsigned int x, y;
@@ -87,6 +88,16 @@
if ([driverClass allowsChannelHopping]) enableChannel = YES;
if ([driverClass allowsInjection]) enableInjection = YES;
if ([driverClass type] == passiveDriver) enableDumping = YES;
+ if ([driverClass wantsIPAndPort]) enableIPAndPort = YES;
+ if (enableIPAndPort) {
+ [_chanhop setHidden:true];
+ [_kdrone_settings setHidden:false];
+ [_kismet_host setStringValue:[d
objectForKey:@"kismetserverhost"]];
+ [_kismet_port setIntValue:[[d
objectForKey:@"kismetserverport"] intValue]];
+ } else {
+ [_chanhop setHidden:false];
+ [_kdrone_settings setHidden:true];
+ }
}
@@ -96,13 +107,13 @@
[_selNone setEnabled:enableChannel];
[_channelSel setEnabled:enableChannel];
[_firstChannel setEnabled:enableChannel];
-
+
[_dumpDestination setEnabled:enableDumping];
[_dumpFilter setEnabled:enableDumping];
- [_injectionDevice setEnabled:enableInjection];
+ [_injectionDevice setEnabled:enableInjection];
if (!enableInjection) {
- [_injectionDevice setTitle:@"Injection Not Supported"];
+ [_injectionDevice setTitle:@"Injection Not Supported"];
}else
[_injectionDevice setTitle:@"use as primary device"];
@@ -161,7 +172,7 @@
int i = [_driverTable selectedRow];
int val = 0, startCorrect = 0;
unsigned int x, y;
-
+
[controller setObject:[NSNumber numberWithFloat: [_frequence
floatValue]] forKey:@"frequence"];
[controller setObject:[NSNumber numberWithBool: [_aeForever state] ==
NSOnState] forKey:@"aeForever"];
@@ -200,6 +211,9 @@
[d setObject:[_dumpDestination stringValue] forKey:@"dumpDestination"];
[d setObject:[NSNumber numberWithInt:[_dumpFilter selectedRow]]
forKey:@"dumpFilter"];
+ [d setObject:[_kismet_host stringValue] forKey:@"kismetserverhost"];
+ [d setObject:[NSNumber numberWithInt:[_kismet_port intValue]]
forKey:@"kismetserverport"];
+
a = [[controller objectForKey:@"ActiveDrivers"] mutableCopy];
[a replaceObjectAtIndex:i withObject:d];
[controller setObject:a forKey:@"ActiveDrivers"];
@@ -252,10 +266,19 @@
- (IBAction)selAddDriver:(id)sender {
NSMutableArray *drivers;
NSString *driverClassName;
+ NSNumber *kserverport;
int result;
driverClassName = [NSString stringWithCString:WaveDrivers[[[_driver
selectedItem] tag]]];
+ if ([driverClassName isEqualToString:@"WaveDriverKismet"]) {
+ kserverport = [NSNumber numberWithInt:2501];
+ } else if ([driverClassName isEqualToString:@"WaveDriverKismetDrone"]) {
+ kserverport = [NSNumber numberWithInt:3501];
+ } else {
+ kserverport = [NSNumber numberWithInt:0];
+ }
+
drivers = [[controller objectForKey:@"ActiveDrivers"] mutableCopy];
[drivers addObject:[NSDictionary dictionaryWithObjectsAndKeys:
driverClassName, @"driverID",
@@ -278,6 +301,8 @@
[NSNumber numberWithInt: 0] , @"dumpFilter",
@"~/DumpLog %y-%m-%d %H:%M" , @"dumpDestination",
[NSClassFromString(driverClassName) deviceName], @"deviceName", //todo
make this unique for ever instance
+ @"127.0.0.1", @"kismetserverhost",
+ kserverport, @"kismetserverport",
nil]];
[controller setObject:drivers forKey:@"ActiveDrivers"];
@@ -295,10 +320,11 @@
OK,nil, nil);
}
}
+
[_driverTable reloadData];
[_driverTable selectRow:[drivers count]-1 byExtendingSelection:NO];
- [self updateUI];
+ [self updateUI];
[drivers release];
}
Modified: trunk/Sources/WaveDrivers/WaveDriver.h
===================================================================
--- trunk/Sources/WaveDrivers/WaveDriver.h 2007-04-22 05:32:46 UTC (rev
232)
+++ trunk/Sources/WaveDrivers/WaveDriver.h 2007-04-24 04:45:15 UTC (rev
233)
@@ -53,6 +53,7 @@
+ (enum WaveDriverType) type;
+ (bool) allowsInjection;
++ (bool) wantsIPAndPort;
+ (bool) allowsChannelHopping;
+ (bool) allowsMultipleInstances;
+ (NSString*) description;
@@ -63,6 +64,7 @@
- (enum WaveDriverType) type;
- (bool) allowsInjection;
+- (bool) wantsIPAndPort;
- (bool) allowsChannelHopping;
- (bool) allowsMultipleInstances;
- (bool) unloadBackend;
@@ -91,6 +93,10 @@
// for passive scanning
- (WLFrame*) nextFrame;
+// for the kismet drones
+-(bool) startedScanning;
+-(bool) stoppedScanning;
+
// for packet injection
- (bool) sendFrame:(UInt8*)f withLength:(int) size atInterval:(int)interval;
- (bool) stopSendingFrames;
Modified: trunk/Sources/WaveDrivers/WaveDriver.m
===================================================================
--- trunk/Sources/WaveDrivers/WaveDriver.m 2007-04-22 05:32:46 UTC (rev
232)
+++ trunk/Sources/WaveDrivers/WaveDriver.m 2007-04-24 04:45:15 UTC (rev
233)
@@ -26,7 +26,10 @@
#import "WaveDriverAirport.h"
#import "WaveHelper.h"
-char WaveDrivers [][30] = { "WaveDriverAirport", "WaveDriverKismet",
"WaveDriverAirportExtreme", "WaveDriverViha", "WaveDriverAtheros",
"WaveDriverAironet", "WaveDriverMacJack", "WaveDriverPrismGT",
"WaveDriverUSBIntersil", "\0" };
+char WaveDrivers [][30] = { "WaveDriverAirport", "WaveDriverKismet",
"WaveDriverKismetDrone",
+
"WaveDriverAirportExtreme", "WaveDriverViha", "WaveDriverAtheros",
+ "WaveDriverAironet",
"WaveDriverMacJack", "WaveDriverPrismGT",
+
"WaveDriverUSBIntersil", "\0" };
@implementation WaveDriver
@@ -45,6 +48,10 @@
return NO;
}
++ (bool) wantsIPAndPort {
+ return NO;
+}
+
+ (bool) allowsChannelHopping {
return NO;
}
@@ -81,6 +88,10 @@
return [[self class] allowsInjection];
}
+- (bool) wantsIPAndPort {
+ return [[self class] wantsIPAndPort];
+}
+
- (bool) allowsChannelHopping {
return [[self class] allowsChannelHopping];
}
@@ -92,6 +103,7 @@
- (bool) unloadBackend {
return [[self class] unloadBackend];
}
+
- (NSString*) deviceName {
return [[self class] deviceName];
}
@@ -293,6 +305,16 @@
#pragma mark -
+-(bool) startedScanning {
+ return YES;
+}
+
+-(bool) stoppedScanning {
+ return YES;
+}
+
+#pragma mark -
+
- (bool) sendFrame:(UInt8*)f withLength:(int) size atInterval:(int)interval {
return NO;
}
Modified: trunk/Sources/WaveDrivers/WaveDriverKismet.h
===================================================================
--- trunk/Sources/WaveDrivers/WaveDriverKismet.h 2007-04-22 05:32:46 UTC
(rev 232)
+++ trunk/Sources/WaveDrivers/WaveDriverKismet.h 2007-04-24 04:45:15 UTC
(rev 233)
@@ -1,10 +1,15 @@
/*
- File: WaveDriverKismet.m
+ File: WaveDriverKismet.h
Program: KisMAC
Author: Geordie Millar
themacuser@xxxxxxxxx
Description: Scan with a Kismet server in KisMac.
+
+ Details: Tested with Kismet 2006.04.R1 on
OpenWRT White Russian RC6 on a Diamond Digital R100
+ (broadcom mini-PCI card, wrt54g
capturesource)
+ and Kismet 2006.04.R1 on Voyage
Linux on a PC Engines WRAP.2E
+ (CM9 mini-PCI card, madwifing)
This file is part of KisMAC.
Modified: trunk/Sources/WaveDrivers/WaveDriverKismet.m
===================================================================
--- trunk/Sources/WaveDrivers/WaveDriverKismet.m 2007-04-22 05:32:46 UTC
(rev 232)
+++ trunk/Sources/WaveDrivers/WaveDriverKismet.m 2007-04-24 04:45:15 UTC
(rev 233)
@@ -5,6 +5,11 @@
Author: Geordie Millar
themacuser@xxxxxxxxx
Description: Scan with a Kismet server in KisMac.
+
+ Details: Tested with Kismet 2006.04.R1 on
OpenWRT White Russian RC6 on a Diamond Digital R100
+ (broadcom mini-PCI card, wrt54g
capturesource)
+ and Kismet 2006.04.R1 on Voyage
Linux on a PC Engines WRAP.2E
+ (CM9 mini-PCI card, madwifing)
This file is part of KisMAC.
@@ -41,6 +46,46 @@
self = [super init];
if (!self) return nil;
+ KismetInstances++;
+
+ return self;
+}
+
++(int) kismetInstanceCount {
+ return KismetInstances;
+}
+
+#pragma mark -
+
++ (enum WaveDriverType) type {
+ return activeDriver;
+}
+
++ (bool) wantsIPAndPort {
+ return YES;
+}
+
++ (NSString*) description {
+ return NSLocalizedString(@"Kismet Server, Passive Mode", "long driver
description");
+}
+
++ (NSString*) deviceName {
+ return NSLocalizedString(@"Kismet Server", "short driver description");
+}
+
+#pragma mark -
+
++ (bool) loadBackend {
+ return YES;
+}
+
++ (bool) unloadBackend {
+ return YES;
+}
+
+#pragma mark -
+
+- (bool) startedScanning {
NSUserDefaults *defs;
defs = [NSUserDefaults standardUserDefaults];
@@ -56,9 +101,31 @@
return nil;
}
- hostname = [[defs objectForKey:@"kismetserverip"] cString];
- port = [[defs objectForKey:@"kismetserverport"] intValue];
+ int foundhostname=0;
+ int foundport=0;
+ NSArray *a;
+ a = [defs objectForKey:@"ActiveDrivers"];
+ NSEnumerator *e = [a objectEnumerator];
+ NSDictionary *drvr;
+ @try {
+ while ( (drvr = [e nextObject]) ) {
+ if ([[drvr objectForKey:@"driverID"]
isEqualToString:@"WaveDriverKismet"]) {
+ hostname = [[drvr
objectForKey:@"kismetserverhost"] cString];
+ foundhostname = 1;
+ port = [[defs objectForKey:@"kismetserverport"]
intValue];
+ foundport = 1;
+ }
+ }
+ }
+ @catch (NSException * ex) {
+ NSLog(@"Exception getting the hostname and port from plist...");
+ }
+
+ if (foundhostname + foundport < 2) {
+ NSLog(@"Error getting the hostname and port from plist...");
+ }
+
ip = inet_addr(hostname);
serv_name.sin_addr.s_addr = ip;
@@ -77,42 +144,17 @@
}
write(sockd, initstr, strlen(initstr));
-
- KismetInstances++;
-
- return self;
+
+ return YES;
}
-+(int) kismetInstanceCount {
- return KismetInstances;
+- (bool) stopCapture {
+ close(sockd);
+ return YES;
}
#pragma mark -
-+ (enum WaveDriverType) type {
- return activeDriver;
-}
-
-+ (NSString*) description {
- return NSLocalizedString(@"Kismet Server, Passive Mode", "long driver
description");
-}
-
-+ (NSString*) deviceName {
- return NSLocalizedString(@"Kismet Server", "short driver description");
-}
-
-#pragma mark -
-
-+ (bool) loadBackend {
- return YES;
-}
-
-+ (bool) unloadBackend {
- return YES;
-}
-
-#pragma mark -
-
- (NSArray*) networksInRange {
int len,i,j,flags,t,signalint;
int usenetarray = 0;
@@ -150,9 +192,9 @@
bssid = [NSData
dataWithBytes:bssidstring length:6]; //
bssid, simple enough
signalint = [[rcvd3 objectAtIndex:4]
intValue]; // signal level, as
an int
if (signalint > 1000 || signalint < 0)
{ signalint = 0; } // sometimes it comes through
as an invalid number
- signal = [NSNumber
numberWithInt:signalint]; //
signal level as NSNumber
+ signal = [NSNumber
numberWithInt:signalint]; //
signal level as NSNumber, you can't put int into array
noise = [NSNumber numberWithInt:0];
// this
is only subtracted from signal, not needed
- channel = [NSNumber
numberWithInt:[[rcvd3 objectAtIndex:6] intValue]]; // channel
+ channel = [NSNumber
numberWithInt:[[rcvd3 objectAtIndex:6] intValue]]; // channel...
flags = 0;
Other related posts:
- » [kismac] [binaervarianz] r233 - in trunk: KisMAC.xcodeproj Resources/Nibs/English.lproj/PrefsAdvanced.nib Resources/Nibs/English.lproj/PrefsDriver.nib Sources/Core Sources/Preferences/PreferencePanes Sources/WaveDrivers