Как можно обфусцировать местный вар? - PullRequest
1 голос
/ 15 декабря 2011

Если в исходном файле хранится пароль, такие программы, как strings или objdump, могут легко читать строки и пароль. Мой вопрос касается хранения данных, как этот кусок кода:

    to_send[77] = data[0];
to_send[27] = data[1];
to_send[4] = data[2];
to_send[777] = data[3];

Где data - строка randomkey, а to_send - строка для отправки. В C ++ возможно ли, что злоумышленник может легко прочитать эту отладку кода как строку? Или сложнее?

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

Если вы хотите сделать реверс-инжиниринг более сложным, вам следует использовать описание DES3 или какой-то подобный подход.Любой вид жестко закодированных данных может быть «зашифрован» таким образом.Конечно, поскольку ключ также будет жестко закодирован, его можно взломать.Но нет пуленепробиваемого решения.Вы можете просто поиграть с уровнем сложности взлома, потому что, как только у вас в памяти появятся необработанные расшифрованные данные.

0 голосов
/ 15 декабря 2011

У вас есть несколько способов сделать это

1) Md5

Не сохраняйте пароль в ресурсах, сохраняйте MD5 (пароль доступа).
Когда пользователь вводит проверку пароля, если MD5(entered_password) == MD5(access_password)

pro: даже если кто-то обратит ваш код и найдет ваш MD5, трудно изменить это значение и найти пароль (если пароль не является словарным словом)

2) небезопасный, но простой способ

char pass[] = {'p','a','s',s'};

Это как-то связано с версией, которую вы пробовали.
Это быстро и просто, ваш пароль не будет найден с ResHacker, потому что пароль не будет сохранен как компактный блок памяти в вашем exe

3) Использование криптографии для сохранения пароля

...