-
Notifications
You must be signed in to change notification settings - Fork 11
Description
Начали прогонять FUTAG на большом объеме целей, и обнаружили такое явление: Найденный креш существует в виде сэмпла и достаточно трудночитаемого кода сгенеренного FUTAG'ом... Передавать проблему разработчикам в таком виде крайне не желательно (разработчики и так не рады тому что их отвлекают, а когда им дают непонятную фигню, так не рады будут совсем).
Для того чтобы передать срабатывание разработчикам, приходится дебагом заходить в исследуемую функцию, смотреть какие именно значения аргументов были переданы при падении, оформлять эти значения в виде констант, и вызывать все вручную.
Для функции:
void
scram_SaltedPassword(const char *password,
const char *salt, int saltlen, int iterations,
uint8 *result)
Должно поучиться что-то вроде
int main()
{
uint8 res;
const char[] arg1 = "12345";
const char[] arg2 = {17, 18, 19};
scram_SaltedPassword(arg1, arg2, 4, 9, &res);
}
Достаточно нудная и однообразная работа. С моей точки зрения это можно в определенной мере автоматизировать...
На основаниии заданного сэмпла сгенерировать обертку в которой сэмпл будет разложен по константам в явном виде.
Это уже будет не стыдно передавать разработчикам.