Я только недавно начал писать сценарии с использованием z3 , только для задач CTF.
for ( i = 0; i <= 7; ++i )
{
s2[i] += s2[i] % 10;
if ( s2[i] > 123 )
s2[i] = -100 - s2[i];
}
strcmp("H0Tf00D:<", s2)
Это довольно простая логика, которую можно сделать даже вручную. Но так как я изучаю z3 , то я задумался, можно ли это сделать с помощью z3 или нет.
Я проделал некоторую домашнюю работу по условиям if с использованием z3 и немногое нашел о .
Вот некоторые из вещей, которые я изучил:
- Z3 Prover Github
- rise4fun — руководство
- z3-how-to-encode-if-the- еще-в-z3-питоне
- z3py-tutorial - ericpony Github
P.S. Мне не нужно решение, я просто хочу знать, можно ли это сделать с помощью z3 или нет, и если да, то укажите мне правильное направление.
Обновление1
Я продвинулся так много (хотя это ничего):
from z3 import *
s1 = Int('s[1]')
s2 = Int('s[2]')
s3 = Int('s[3]')
s4 = Int('s[4]')
s5 = Int('s[5]')
s6 = Int('s[6]')
s7 = Int('s[7]')
s = Solver()
a = "H0Tf00D:<"