add ropper

This commit is contained in:
Jack Bond-Preston 2020-12-02 12:13:45 +00:00
parent b61a844605
commit dc989748f0
4 changed files with 16 additions and 3 deletions

5
.gitignore vendored
View File

@ -145,4 +145,7 @@ out/*
rop.txt rop.txt
# netcat # netcat
netcat-0.7.1 netcat-0.7.1
# Ropper
Ropper

View File

@ -84,14 +84,17 @@ class ROPMakerX86(object):
return p return p
def __write4bytes(self, address, data, data_addr, popDst, popSrc, write4where): def __write4bytes(self, address, data, data_addr, popDst, popSrc, write4where):
# write address to dst
p = pack("<I", popDst['vaddr']) p = pack("<I", popDst['vaddr'])
p += pack("<I", address) p += pack("<I", address)
p += self.__padding(popDst, {}) p += self.__padding(popDst, {})
# write data to src
p += pack("<I", popSrc['vaddr']) p += pack("<I", popSrc['vaddr'])
p += data p += data
p += self.__padding(popSrc, {popDst["gadget"].split()[1]: data_addr}) # Don't overwrite reg dst p += self.__padding(popSrc, {popDst["gadget"].split()[1]: data_addr}) # Don't overwrite reg dst
# write src to [dst] (address pointed to by dst)
p += pack("<I", write4where['vaddr']) p += pack("<I", write4where['vaddr'])
p += self.__padding(write4where, {}) p += self.__padding(write4where, {})

View File

@ -113,4 +113,4 @@ if run:
print() print()
print(f"[ Run Program : ./{exec_file} {rop_file} ]") print(f"[ Run Program : ./{exec_file} {rop_file} ]")
os.execv(exec_file, [exec_file, rop_file]) os.execv(exec_file, [exec_file, rop_file])

View File

@ -31,6 +31,13 @@ python3 -m pip uninstall --yes ROPgadget
cd /home/vagrant/cw && ./ropinstall.sh cd /home/vagrant/cw && ./ropinstall.sh
python3 -m pip install --upgrade keystone-engine capstone filebytes pyvex
cd /home/vagrant/cw && git clone https://github.com/sashs/Ropper.git
cd /home/vagrant/cw/Ropper && git submodule init && git submodule update
cd /home/vagrant/ && git clone https://github.com/Z3Prover/z3.git && cd z3 && python3 scripts/mk_make.py && cd build && make -j$(nproc) && sudo make install
cp -R /home/vagrant/z3/build/python/z3 /home/vagrant/cw/Ropper
sudo apt-get clean sudo apt-get clean
echo ":)" echo ":)"