methodology to obtain such data during the execution
of the target program, taking advantage of dynamic
binary instrumentation to perform a runtime analysis
of the heap state. HAIT, the proof of concept imple-
mentation of our methodology, proved to be useful in
the context of known vulnerable programs, like CTFs.
6 FUTURE DEVELOPMENT
HAIT has been developed to showcase the proposed
exploitation methodology and is still not a production
ready tool. As such, can be improved regarding cov-
erage and effectiveness. The overhead can be reduced
by creating an ad-hoc engine for the concolic execu-
tion, eliminating the unnecessary operations that the
underlying generic framework, Triton, provides and
focusing only to what strictly required by our analy-
sis. Moreover, since the method of analysis is gen-
eral and can be applied to a large variety of targets,
it would be interesting to extend the tool to support
other architectures and allocators, above all the An-
droid environment, which runs on ARM and uses je-
malloc for the heap management.
ACKNOWLEDGMENT
Andrea Marcelli Ph.D. program at Politecnico di
Torino is supported by a fellowship from TIM (Tele-
com Italia Group).
Authors wish to thanks Dario Lombardo and Mar-
iano Graziano for their support and insightful com-
ments.
REFERENCES
Argyroudis, P. and Karamitas, C. (2015). Shadow v1.0b.
https://github.com/CENSUS/shadow.
Avgerinos, T., Cha, S. K., Hao, B. L. T., and Brumley,
D. (2011). AEG: Automatic exploit generation. In
Network and Distributed System Security Symposium,
pages 283–300.
blackngel (2009). Malloc des-maleficarum. Phrack.
Conrad, E. (2015). Off by 1 over-
flow. https://www.sans.edu/student-
files/presentations/heap overflows notes.pdf.
Di Federico, A., Cama, A., Shoshitaishvili, Y., Kruegel, C.,
and Vigna, G. (2015). How the elf ruined christmas. In
24th USENIX Security Symposium (USENIX Security
15), pages 643–658.
Evans, C. (2015). What is a good memory corruption.
https://googleprojectzero.blogspot.it/2015/06/what-
is-good-memory-corruption.html.
Heelan, S. (2009). Automatic generation of control flow hi-
jacking exploits for software vulnerabilities. Master’s
thesis, University of Oxford.
MITRE (2017). Common Weakness Enumeration
- version 2.10, cwe-120: Buffer copy without
checking size of input (’classic buffer overflow’).
http://cwe.mitre.org/data/definitions/120.html.
Phantasmagoria, P. (2005). The malloc maleficarum - glibc
malloc exploitation techniques. Phrack.
Quals (2015). freenote 0ctf. https://ctf.0ops.net.
Rains, T. (2014). How vulnerabilities are exploited: the root
causes of exploited remote code execution cves.
Roemer, R., Buchanan, E., Shacham, H., and Savage, S.
(2012). Return-oriented programming: Systems, lan-
guages, and applications. ACM Transactions on Infor-
mation and System Security (TISSEC), 15(1):2.
Salwan, J. (2015). presentation of dynamic be-
havior analysis using binary instrumentation.
https://www.slideshare.net/sth4ck/st-hack2015-
dynamicbehavioranalysisusingbinaryinstrumentation-
jonathansalwan-46443521.
Saudel, F. and Salwan, J. (2015). Triton: A dynamic
symbolic execution framework. In Symposium sur la
s
´
ecurit
´
e des technologies de l’information et des com-
munications, SSTIC, France, Rennes, June 3-5 2015,
pages 31–54. SSTIC.
seanwupi (2015). Advanced heap exploitation: 0ctf 2015
’freenote’ writeup. https://gist.github.com/seanwupi/
929df6655f2acdbab3ff.
Shoshitaishvili, Y., Wang, R., Salls, C., Stephens, N.,
Polino, M., Dutcher, A., Grosen, J., Feng, S., Hauser,
C., Kruegel, C., and Vigna, G. (2016). SoK: (State
of) The Art of War: Offensive Techniques in Binary
Analysis. In IEEE Symposium on Security and Pri-
vacy.
Stephens, N., Grosen, J., Salls, C., Dutcher, A., Wang, R.,
Corbetta, J., Shoshitaishvili, Y., Kruegel, C., and Vi-
gna, G. (2016). Driller: Augmenting fuzzing through
selective symbolic execution. In Proceedings of the
Network and Distributed System Security Symposium.
Szekeres, L., Payer, M., Wei, T., and Song, D. (2013). Sok:
Eternal war in memory. In Security and Privacy (SP),
2013 IEEE Symposium on, pages 48–62. IEEE.
UKessays.com (2015). Buffer Overflow At-
tacks And Types Computer Science Essay.
https://www.ukessays.com/essays/computer-
science/buffer-overflow-attacks-and-types-
computer.science-essay.php.
Wojtczuk, R. (2001). The advanced return-into-lib (c) ex-
ploits: Pax case study. Phrack Magazine, Volume
0x0b, Issue 0x3a, Phile# 0x04 of 0x0e.
SECRYPT 2017 - 14th International Conference on Security and Cryptography
334