luaPower, я так понимаю, вы хотите сделать защиту для своего исполняемого файла. В этом случае можно, например, его зашифровать и перед исполнением расшифровывать (почитайте про userland exec), или зашифровать каждую функцию отдельным ключом и перед вызовом расшифровывать, а после - обратно зашифровывать. Это может помочь при защите, в отличие от перемешивания функций
Román Mirilaczvili, Нет, не имеет. Однако автор вопроса хочет ещё и отладочную информацию удалить
Я как раз это и хочу сделать. Удалить всё лишнее: отладочные символы, необязательные секции.
Рандомизацией адресов действительно должно заниматься ядро. Зачем перемешивать функции в исполняемом файле я так и не понял, т.к. никакой дополнительной защиты от этого не будет
Soft_touch_plastic, Граф можно представить как функцию, которая принимает вершину (в вашем случае слово), а возвращает список соседей. То есть вам нужно применить к слову все возможные трансформации и вернуть результаты этих трансформаций
Мне в голову приходит решение через A*. Соседние вершины графа для любого слова - слова, которые за один шаг можно из него получить. Эвристика - расстояние между словом в вершине и целевым словом.
Какие изменения слова за шаг разрешены? Просто в вашем примере первое изменение две буквы затронуло, а второе - только одну. Поэтому не очень понятна задача.
voproser45654, я когда баловался модификацией бинарников именно на си писал ту часть, которую в них встраивал. Компилировал, доставал .text секцию и получал пригодный для встраивания машинный код. Главное компилировать в позиционно-независимый код. Писать на голом ассемблере смысла нет, разве что у вас какой-то специфический случай, когда каждый байтик на счету.
Ну или можно вычислять время, которое прошло между итерациями цикла, прибавлять его к общему, и когда она станет больше либо равно часу, прибавлять к num единицу и обнулять счётчик времени
LXSTVAYNE, На хаскеле тоже. Только кресты — это путь мазохиста, а хаскель очень приятен. Особенно для компиляторов. На любом языке общего назначения можно что угодно написать из прикладного софта. И как бы зачем мучиться с крестами, если можно этого не делать