```ruby
exe[(i*section_size)+pe.rva_to_file_offset(secions_table_offset),section_size]
```

reads to me as calculate the nth section's offset, then find that section's section table offset, but then take the entire section from that offset, since the variable is called section_size.  Is section_size actually the size of the section table?  The variable names seem inconsistent.