package parser.elf;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Dynamic {
public Dynamic(ByteBuffer data, int dynamicOff, int dynstrOff, int dynamicSize)
{
this.dynamicData = data;
this.dynamicOff = dynamicOff;
this.dynstrOff = dynstrOff;
this.dynamicSize = dynamicSize;
for(int i=0; i<dynamicSize; i=i+8)
{
int off = dynamicOff +i;
if(data.getInt(off) ==1)
{
int noff = dynstrOff+data.getInt(off+4);
int k=0;
while(data.get(noff+(k++)) != 0x0);
String na = new String(Arrays.copyOfRange(data.array(), noff, noff+k-1));
// System.out.println(na);
impLib.add(na);
}
}
}
public List<String> getImpLib()
{
return impLib;
}
private List<String> impLib = new ArrayList<String>();
private ByteBuffer dynamicData;
private int dynamicOff;
private int dynstrOff;
private int dynamicSize;
}