Пример #1
0
	def writeRequest(self,packet):
		io.info("Write Request : handle = "+hex(packet.handle)+" / value = "+packet.value.hex())
		(success,code) = self.server.writeRequest(packet.handle,packet.value)
		if success:
			self.emitter.sendp(ble.BLEWriteResponse())
		else:
			self.emitter.sendp(ble.BLEErrorResponse(request=0x12,ecode=code,handle=packet.handle))
Пример #2
0
	def readBlobRequest(self,packet):
		io.info("Read Blob Request : handle = "+hex(packet.handle) + " / offset = "+str(packet.offset))
		(success,response) = self.server.readBlob(packet.handle,packet.offset)
		if success:
			self.emitter.sendp(ble.BLEReadBlobResponse(value=response))
		else:
			self.emitter.sendp(ble.BLEErrorResponse(request=0x0a, ecode=response,handle=packet.handle))
Пример #3
0
	def readByGroupTypeRequest(self,packet):
		io.info("Read By Group Type Request : startHandle = "+hex(packet.startHandle)+
				" / endHandle = "+hex(packet.endHandle)+" / uuid = "+hex(packet.uuid))
		(success,response) = self.server.readByGroupType(packet.startHandle, packet.endHandle, packet.uuid)
		if success:
			io.displayPacket(ble.BLEReadByGroupTypeResponse(attributes=response))
			self.emitter.sendp(ble.BLEReadByGroupTypeResponse(attributes=response))
		else:
			self.emitter.sendp(ble.BLEErrorResponse(request=0x10,ecode=response,handle=packet.startHandle))
Пример #4
0
	def findInformationRequest(self,packet):
		io.info("Find Information Request : startHandle = "+hex(packet.startHandle)+
			" / endHandle = "+hex(packet.endHandle))
		(success,response) = self.server.findInformation(packet.startHandle,packet.endHandle)
		if success:
			io.displayPacket(ble.BLEFindInformationResponse(attributes=response))
			self.emitter.sendp(ble.BLEFindInformationResponse(attributes=response))
		else:
			self.emitter.sendp(ble.BLEErrorResponse(request=0x04,ecode=response,handle=packet.startHandle))
Пример #5
0
 def errorResponse(self, packet):
     if self.getStage() == BLEMitmStage.ACTIVE_MITM:
         io.info("Error Response (from slave) : request = " +
                 hex(packet.request) + " / handle = " + hex(packet.handle) +
                 " / ecode = " + hex(packet.ecode))
         io.info("Redirecting to master ...")
         self.a2mEmitter.sendp(
             ble.BLEErrorResponse(request=packet.request,
                                  handle=packet.handle,
                                  ecode=packet.ecode))