1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-06 04:31:29 +00:00

more code cleanup

This commit is contained in:
patrik
2012-10-25 20:05:15 +00:00
parent 165a8c0929
commit 6c4a1ff1ab

View File

@@ -75,14 +75,14 @@ CodePoint = {
ACCSEC = 0x106d,
SECCHK = 0x106e,
EXCSAT = 0x1041,
PRDID = 0x112e,
PRDID = 0x112e,
SRVCLSNM = 0x1147,
SVRCOD = 0x1149,
SYNERRCD = 0x114a,
SRVRLSLV = 0x115a,
EXTNAM = 0x115e,
SRVNAM = 0x116d,
USRID = 0x11a0,
USRID = 0x11a0,
PASSWORD = 0x11a1,
SECMEC = 0x11a2,
SECCHKCD = 0x11a4,
@@ -225,14 +225,12 @@ DRDA = {
--
-- @return data containing the object instance
__tostring = function(self)
local data
if ( not(self.DDM) ) then
stdnse.print_debug("drda.DRDA.toString: DDM cannot be nil")
return nil
end
data = bin.pack(">SCCSSS", self.DDM.Length, self.DDM.Magic, self.DDM.Format, self.DDM.CorelId, self.DDM.Length2, self.DDM.CodePoint )
local data = bin.pack(">SCCSSS", self.DDM.Length, self.DDM.Magic, self.DDM.Format, self.DDM.CorelId, self.DDM.Length2, self.DDM.CodePoint )
for k,v in ipairs(self.Parameters) do
data = data .. tostring(v)
end
@@ -255,17 +253,16 @@ DRDA = {
-- @return Data (if status is true) or error string (if status is false).
receive = function( self, db2socket )
local DDM_SIZE = 10
local status, data, ddm, param
local pos = 1
-- first read atleast enough so that we can populate the DDM
status, data = db2socket:receive_buf( match.numbytes(DDM_SIZE), true )
local status, data = db2socket:receive_buf( match.numbytes(DDM_SIZE), true )
if ( not(status) ) then
stdnse.print_debug("drda.DRDA.receive: %s", data)
return false, ("Failed to read at least %d bytes from socket"):format(DDM_SIZE)
end
ddm = DDM:new()
local ddm = DDM:new()
ddm:fromString( data )
self:setDDM( ddm )
@@ -276,7 +273,7 @@ DRDA = {
-- add parameters until pos reaches the "end"
repeat
param = DRDAParameter:new()
local param = DRDAParameter:new()
pos = param:fromString( data, pos )
self:addParameter( param )
until ( #data <= pos )
@@ -309,8 +306,7 @@ DRDAParameter = {
--
-- @return data string containing the DRDA Parameter
__tostring = function( self )
local data = bin.pack(">SS", self.Length, self.CodePoint )
local data = bin.pack(">SS", self.Length, self.CodePoint )
if ( self.Data ) then
data = data .. bin.pack("A", self.Data)
end
@@ -557,12 +553,12 @@ Helper = {
getServerInfo = function( self )
local mgrlvlls = bin.pack("H", "1403000724070008240f00081440000814740008")
local drda_excsat = Command.EXCSAT( "", "", "", mgrlvlls, "" )
local drda, response, param, status, err, packet
local response, param, err
status, packet = self.comm:exchDRDAPacket( DRDAPacket:new( { drda_excsat } ) )
local status, packet = self.comm:exchDRDAPacket( DRDAPacket:new( { drda_excsat } ) )
if ( not(status) ) then return false, err end
drda = packet:getDRDAByCodePoint( CodePoint.EXCSATRD )
local drda = packet:getDRDAByCodePoint( CodePoint.EXCSATRD )
if ( drda ) then
response = {}
param = drda:getParameter( CodePoint.EXTNAM )
@@ -596,9 +592,6 @@ Helper = {
-- @return Status (true or false)
-- @return err message (if status if false)
login = function( self, database, username, password )
local drda = {}
local packet, data, param, status, err, _
local mgrlvlls = bin.pack("H", "1403000724070008240f00081440000814740008")
local secmec, prdid = "\00\03", "JCC03010"
local tdovr = bin.pack("H", "0006119c04b80006119d04b00006119e04b8")
@@ -609,7 +602,7 @@ Helper = {
local drda_secchk = Command.SECCHK( secmec, database, username, password )
local drda_accrdb = Command.ACCRDB( database, string.char(0x24,0x07), "DNC10060", nil, "QTDSQLASC", crrtkn, tdovr)
status, packet = self.comm:exchDRDAPacket( DRDAPacket:new( { drda_excsat, drda_accsec } ) )
local status, packet = self.comm:exchDRDAPacket( DRDAPacket:new( { drda_excsat, drda_accsec } ) )
if( not(status) ) then return false, packet end
if ( packet:getDRDAByCodePoint( CodePoint.RDBNFNRM ) or
@@ -618,12 +611,12 @@ Helper = {
return false, "ERROR: Database not found"
end
drda = packet:getDRDAByCodePoint( CodePoint.ACCSECRD )
local drda = packet:getDRDAByCodePoint( CodePoint.ACCSECRD )
if ( not(drda) ) then
return false, "ERROR: Response did not contain any valid security mechanisms"
end
param = drda:getParameter( CodePoint.SECMEC )
local param = drda:getParameter( CodePoint.SECMEC )
if ( not(param) ) then
stdnse.print_debug("drda.Helper.login: ERROR: Response did not contain any valid security mechanisms")
return false, "ERROR: Response did not contain any valid security mechanisms"
@@ -662,9 +655,7 @@ Helper = {
packet:getDRDAByCodePoint( CodePoint.RDBAFLRM ) ) then
return false, "ERROR: Database not found"
end
return false, "ERROR: Login failed"
end,
}
@@ -692,18 +683,16 @@ Comm = {
end,
recvDRDA = function( self )
local status, err
local drda_tbl = {}
repeat
local drda = DRDA:new()
status, err = drda:receive( self.socket )
local status, err = drda:receive( self.socket )
if ( not(status) ) then
return false, err
end
table.insert(drda_tbl, drda)
until ( not(drda.DDM:isChained()) )
return true, drda_tbl
end,
@@ -726,9 +715,7 @@ Comm = {
stdnse.print_debug("drda.Helper.login: ERROR: DB2Socket error: %s", drda )
return false, ("ERROR: DB2Socket error: %s"):format( drda )
end
return true, DRDAPacket:new( drda )
end
}
@@ -764,10 +751,10 @@ StringUtil =
-- @param ascii string containing the ASCII value
-- @return string containing the EBCDIC value
toEBCDIC = function( ascii )
local val, ret = 0, ""
local ret = ""
for i=1, #ascii do
val = ascii.byte(ascii,i) + 1
local val = ascii.byte(ascii,i) + 1
ret = ret .. a2e_tbl:sub(val, val)
end
return ret
@@ -778,10 +765,10 @@ StringUtil =
-- @param ebcdic string containing EBCDIC value
-- @return string containing ASCII value
toASCII = function( ebcdic )
local val, ret = 0, ""
local ret = ""
for i=1, #ebcdic do
val = ebcdic.byte(ebcdic,i) + 1
local val = ebcdic.byte(ebcdic,i) + 1
ret = ret .. e2a_tbl:sub(val, val)
end
return ret