不固定长度的字符串的改变字符串字符位置函数谁会?
本帖最后由 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: ’字符串
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的值不同,排序结果也不同,而且排序是可逆的算法
还有大神们给看看,这个字符串是数组格式吗 ,那个20是长度,后面是字符串
大家帮忙分析下,谢谢了如果谁有思路,我所有的 飘云币: 54枚 全给您
为啥不跟进那个call里仔细分析一下。。。 同意楼上 你给的例子:
1=1
12=12
123=123
1234=3241
12345=23415
123456=324165
1234567=1347265
12345678=81357642
123456789=378142695
1234567890=5368491027
没有通用性,只代表这几个字符串情况而已
你都明确那个CALL就是实现这个功能,直接F7进去分析,耐心的一步一步分析完 确实的,你跟进去,反复跟几遍。这种东西只有自己经历过才是学会了。 JZL 发表于 2016-2-29 14:51
确实的,你跟进去,反复跟几遍。这种东西只有自己经历过才是学会了。
恩,好吧我自己再多分析分析
GeekCat 发表于 2016-2-29 14:19
你给的例子:
1=1
好的,我试试
只是位置的变化,应该不会很复杂. 我是菜鸟,什么都不懂。帮顶楼主,期待达人的出手
页:
[1]