TA的每日心情 | 奋斗 2016-3-11 12:31 |
---|
签到天数: 14 天 [LV.3]偶尔看看II
|
本帖最后由 gaogyc 于 2016-2-29 10:42 编辑
某软件的注册算法中有一部分算法是改变字符串字符位置的函数,并且这个函数是可逆的
代码部分:
0089DE93 6A 01 push 0x1
0089DE95 68 37000000 push 0x37 ‘参数1
0089DE9A 68 2C000000 push 0x2C ’参数2
0089DE9F 8D45 A4 lea eax,dword ptr ss:[ebp-0x5C] ’字符串
0089DEA2 50 push eax ‘字符串进堆栈
0089DEA3 E8 04030000 call XXX.00XXXXXX ’改变字符串字符位置函数
下面是运算结果
左边是给入的字符串 右边是函数转换之后的字符串
1=1
12=12
123=123
1234=3241
12345=23415
123456=324165
1234567=1347265
12345678=81357642
123456789=378142695
1234567890=5368491027
谁能给分析下下个函数的实现原理,告诉我个大概的方法就行,
这个函数可以处理不同长度的字符串,根据参数1和参数2的值变成不同的排序,也就是说参数1参数2的值不同,排序结果也不同,而且排序是可逆的算法
OD数据区
还有大神们给看看,这个字符串是数组格式吗 ,那个20是长度,后面是字符串
大家帮忙分析下,谢谢了 如果谁有思路,我所有的 飘云币: 54枚 全给您
|
|