能力值:
( LV3,RANK:20 )
|
-
-
2 楼
,怎么都没人愿意看看呀.哎..
菜鸟们都希望得到大牛的指点呢
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
name:fengziyu
code:fengziyQ
原来考初中解方程啊
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
我只能把它爆了,却因为我看不太懂有些32汇编语句而无法分析出算法,望高手能把算法详细分析出来让我们学习。
00401627 . DB4424 18 fild dword ptr [esp+18]
0040162B . DEE9 fsubp st(1), st
0040162D . DC25 28254000 fsub qword ptr [402528]
00401633 . DC1D 20254000 fcomp qword ptr [402520]
00401639 . DFE0 fstsw ax
0040163B . F6C4 40 test ah, 40
0040163E 75 10 jnz short 00401650
00401640 68 28304000 push 00403028 ; 正确!
00401645 . E8 3A020000 call <jmp.&MFC42.#1200_AfxMessageBox>
0040164A . 5F pop edi
0040164B . 5E pop esi
0040164C . 5D pop ebp
0040164D . 5B pop ebx
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
呵呵,这个图贴不上来
|
能力值:
( LV3,RANK:20 )
|
-
-
6 楼
嘿嘿.强人啊..这个都解出来啦..哎.我都算咯半天...
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
不会追码-,-!
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
算法比较简单 = =
n = sum(user) - sum(pwd)
pow(n,3) - pow(n,2) - 45360 == 0
因此
dzhsurf
dzhsurB
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
这个一元3次方程也真难算啊,不过,总算算出来了,只要用户名和密码的ASCII相减后=24H(即36,十进制),就能显示成功。
name:zsfzsf zouzou
psd: zsfzsB zouzoQ
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
先占个地。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
还好
不算很难
|
能力值:
(RANK:680 )
|
-
-
12 楼
LZ再接再厉~~
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
晕了,数学一直是我的噩梦
|
能力值:
( LV8,RANK:130 )
|
-
-
14 楼
-----下面求name的ASCII码和
004015DB TEST EDX, EDX ; ZF=0 //0x8&0x8=0x8
004015DD JLE SHORT 004015EA ; 不跳 //ZF=0;当比较结果是小于或等于时,才跳
004015DF MOVSX EDI, BYTE PTR DS:[EBX+EAX] ; EDI=0x64 ('d') //DS段[373F6F] (ASCII字符串:"d")
004015E3 ADD EBP, EDI ; EBP=0x359 //EBP=0x2F5+0x64
004015E5 INC EAX ; EAX=(0x7)++
004015E6 CMP EAX, EDX ; ZF=1 //EAX=0x8,EDX=0x8
004015E8 JL SHORT 004015DF ; 不跳 //ZF=0,当比较结果是小于时,才跳
-----下面求code的ASCII码和
004015EA XOR EAX, EAX ; EAX=0,CF=0 //自身xor运算结果为0,CF=0
004015EC TEST ECX, ECX ; ZF=0 //0xA&0xA=0xA
004015EE JLE SHORT 00401603 ; 不跳 //ZF=0;当比较结果是小于或等于时,才跳
004015F0 MOVSX EDX, BYTE PTR DS:[ESI+EAX] ; EDX=0x39 ('9') //DS段[373FC1] (ASCII字符串:"9")
004015F4 MOV EBX, DWORD PTR SS:[ESP+10] ; EBX=0x1F7 //SS段[12F8B4]
004015F8 ADD EBX, EDX ; EBX=0x230 //EBX=0x1F7+0x39
004015FA INC EAX ; EAX=(0x9)++
004015FB CMP EAX, ECX ; ZF=1 //EAX=0xA,ECX=0xA
004015FD MOV DWORD PTR SS:[ESP+10], EBX ; SS段[12F8B4]=0x230
00401601 JL SHORT 004015F0 ; 不跳 //ZF=0,当比较结果是小于时,才跳
------name和 减 code和
00401603 SUB EBP, DWORD PTR SS:[ESP+10] ; EBP=0x162 //EBP=0x359;SS段[0]=0x1F7
00401607 MOV DWORD PTR SS:[ESP+10], EBP ; SS段[12F8B4]=0x129
------3次方
0040160B FILD DWORD PTR SS:[ESP+10] ; st0=297 //装入整数到st(0)
0040160F FLD QWORD PTR DS:[402530] ; st(0)=3.000000 //装入实数到st(0)
00401615 CALL 004018E0 ; _CIpow(297,3)
------2次方
0040161A MOV EAX, EBP ; EAX=0x129
0040161C PUSH 0 ; 0x0进栈
0040161E IMUL EAX, EBP ; EAX=0x15891;CF=0;OF=0 (带符号的乘法运算)
00401621 MOV DWORD PTR SS:[ESP+14], EAX ; SS段[12F8B4]=0x15891
00401625 PUSH 0 ; 0x0进栈
00401627 FILD DWORD PTR SS:[ESP+18] ; st0=88209 //装入整数到st(0)
0040162B FSUBP ST(1), ST(0) ; 3次方 减 2次方
0040162D FSUB QWORD PTR DS:[402528] ; st(0)=26064504.000000 //st(0)=26109864.000000-45360.000000 (再减45360)
------结果不为0就失败,随便输入了"7979797979",当然失败
00401633 FCOMP QWORD PTR DS:[402520] ; st(0)与0.000000比较 //st(0)=26064504.000000 (计算结果是否为减,我随便输入的code不正确)
00401639 FSTSW AX ; AX=0x20 //保存状态字到AX中
0040163B TEST AH, 40 ; ZF=1 //0x0&0x40=0
0040163E JE SHORT 00401650 ; 跳到00401650 //ZF=1,结果相等
|