[讨论]软件中有哪些隐藏明文字符串的方法
新手请教:
玩了一段时间的CrackMe,有些是明文直接出现的。就像这样的,直接通过字符串搜索就能定位关键位置进行破解。
有些是通过字符串搜索,什么有用的信息也搜不到。像这样的。

那么问题来了
如何去隐藏字符串=。=
百度也没百度到相关的内容,只是自己想了个笨方法:申请一片空间,然后用内联汇编挨个往里边填字符。
_asm
{
lea esi, a;
mov byte ptr[esi], 101;
inc esi;
mov byte ptr[esi], 114;
inc esi;
mov byte ptr[esi], 114;
inc esi;
mov byte ptr[esi], 111;
inc esi;
mov byte ptr[esi], 114;
inc esi;
mov byte ptr[esi], 33;
inc esi;
mov byte ptr[esi], 0;
}有没有其他的方法或关于这方面的技术文章,希望大牛不吝赐教。
顺便发一下第一次写的CrackMe,特别Low,不用笑.......
ConsoleApplication2.rar
=======================分割================================
又想到了一个办法:
for (int i = 0; i < wcslen(_Text); i++) _Text[i] -=10 ;
把_TEXT中的数据挨个加或减固定的数,这样中文字符的话就会变成乱码,在VS调试的时候把这些乱码保存下来,然后赋给字符串作初值,这样就算OD或IDA查到字符串,那么也是乱码。
WCHAR _Text[100] = L"砾觭旃泟D\x14;》叅陮朶xkq窡叭\x14<》侉寐砋辝兯桐叢乄叹甲\x14=》抈刄管泟";
用到的时候在把它还原,用完了再给他加或减固定的数。
for (int i = 0; i < wcslen(_Text); i++) _Text[i] -=10 ; for (int i = 0; i < wcslen(_Caption); i++) _Caption[i] += 10; MessageBox(_Text, _Caption); for (int i = 0; i < wcslen(_Caption); i++) _Caption[i] -= 10; for (int i = 0; i < wcslen(_Text); i++) _Text[i] += 10;
顺便放上用这个方法写的一个CrackMe,MFC写的,VS2015,高手笑笑就好

MFCApplication4.rar
