public static SectionTable readSectionHeaders(PE pe, IDataReader dr) throws IOException { SectionTable st = new SectionTable(); int ns = pe.getCoffHeader().getNumberOfSections(); for (int i = 0; i < ns; i++) { st.add(readSectionHeader(dr)); } SectionHeader[] sorted = st.getHeadersPointerSorted(); int[] virtualAddress = new int[sorted.length]; int[] pointerToRawData = new int[sorted.length]; for (int i = 0; i < sorted.length; i++) { virtualAddress[i] = sorted[i].getVirtualAddress(); pointerToRawData[i] = sorted[i].getPointerToRawData(); } st.setRvaConverter(new RVAConverter(virtualAddress, pointerToRawData)); return st; }