首页
社区
课程
招聘
[求助]算法求逆
发表于: 2009-1-28 19:23 2977

[求助]算法求逆

2009-1-28 19:23
2977
假码A 经过计算得到B(计算过程也弄清楚了),B与真码C比较,
怎么也推不出A来,需要补哪方面的知识,
我是真真的菜鸟,大学也不是计算专业,请高手们

比如
0040120F  |.  53            PUSH EBX
00401210  |.  52            PUSH EDX
00401211  |.  33C0          XOR EAX,EAX
00401213  |.  B8 A6204000   MOV EAX,crackme5.004020A6
00401218  |.  8038 00       CMP BYTE PTR DS:[EAX],0        没输入注册码退出
0040121B  |.  74 60         JE SHORT crackme5.0040127D
0040121D  |.  33DB          XOR EBX,EBX
0040121F  |.  33D2          XOR EDX,EDX
00401221  |>  8A18          /MOV BL,BYTE PTR DS:[EAX]   依次取假码的每个字节
00401223  |.  C1C3 08       |ROL EBX,8                            左移8位
00401226  |.  03D3          |ADD EDX,EBX       累加到dx
00401228  |.  40            |INC EAX
00401229  |.  8038 00       |CMP BYTE PTR DS:[EAX],0                 ;  比较晚所有字节退出
0040122C  |.^ 75 F3         \JNZ SHORT crackme5.00401221

他的处理工程我能用c写出来,但是反过来推就没办法,需要补哪方面知识

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
怎么这么眼熟呢?好像是Crackme精华里面的其中一个吧?这个不就是解方程嘛,补补初中数学就行了。
比如说字符串N个字符,简单点,就说N=5吧,这五个字符用ABCDE表示,第一次取A,第二次取B,……
加起来就是,最后DEX的值就是:

   00A0  \
   0AB0   |
   ABC0    > 字符串长度行
   BCDA   |
+  CDEB  /
---------
   XXXX = EDX

这里的每一个字母(ABCDE)都是未知数,都是8位,最后那个XXXX就是那个32位的数,应该是已知的吧(就是你原题里面的C)。如果原题里面正确的字符串A不长的话,很容易就算出来啦。
2009-1-29 01:17
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
3
是本站解密教学的某示例程序或习题程序。

程序没有对输入长度进行限制,按此式,为最简,可设码长为4,即ABCD:

   00A0  \
   0AB0   |
   ABC0    > 字符串长度行
+  BCDA   /
---------
   WXYZ = EDX

为简化求解,假设相加过程中每个字节都没有进位,那么

W = A+B
X = A+B+C
Y = A+B+C+D
Z = A

从而解得A、B、C、D的值,然后验证其确实没有进位(若有进位,则对结果进行修正)。
2009-1-29 19:36
0
游客
登录 | 注册 方可回帖
返回
//