饮羽公路造价V1.88破解分析
破解人:lchhome[OCN][DFCG]
一、此软件是用VB6.0编写,无壳。
二、因用W32dsm反汇编找到任何有用的字符串,用GetVBRes载入程序,找到“注册码错误”改为任意字符“happy new year”,再用W32dsm反汇编,这下可找到“happy new year”,双击,再往上找,可找到关键跳转句“0079063C 0F84 16010000 JE yglzj.00790758”,把JE改为JNE,可跳到“注册码成功”,但这不是完美爆破,仍然有功能限制,不管它,用OD载入程序,跳到0079063C句,然后往上找,如下:
007904AA . E8 93D2C7FF CALL 看见没有,比较函数,重要,按F2下断吧,然后按F9进入程 序,在注册框中填入“用户名:lchhome@163.com,注册码:1234567890” 后,按F8跟进
007904AF . 85C0 TEST EAX,EAX
007904B1 . 0F85 A2000000 JNZ yglzj.00790559 把假注册码比较后,继续往下跳到 00790559句 ,走
007904B7 . B8 04000280 MOV EAX,80020004
007904BC . 8985 58FFFFFF MOV DWORD PTR SS:[EBP-A8],EAX
007904C2 . 6A 0A PUSH 0A
007904C4 . 5F POP EDI
............................................................
中间一段省略
............................................................
00790531 . E8 E8D1C7FF CALL
00790536 . 8985 B8FEFFFF MOV DWORD PTR SS:[EBP-148],EAX
0079053C . C785 B0FEFFFF >MOV DWORD PTR SS:[EBP-150],3
00790546 . 8D95 B0FEFFFF LEA EDX,DWORD PTR SS:[EBP-150]
0079054C . 8D4D C4 LEA ECX,DWORD PTR SS:[EBP-3C]
0079054F . E8 42D2C7FF CALL
00790554 . E9 9A010000 JMP yglzj.007906F3
00790559 > 8B03 MOV EAX,DWORD PTR DS:[EBX] 跳到此处,往下走
0079055B . 68 38B0A600 PUSH yglzj.00A6B038
00790560 . 68 48B0A600 PUSH yglzj.00A6B048
00790565 . 68 44B0A600 PUSH yglzj.00A6B044
0079056A . 68 40B0A600 PUSH yglzj.00A6B040
0079056F . 53 PUSH EBX
00790570 . FF90 F8060000 CALL DWORD PTR DS:[EAX+6F8] 这里有个CAll,按F7跟进
00790576 . 3BC7 CMP EAX,EDI
00790578 . 7D 11 JGE SHORT yglzj.0079058B
0079057A . 68 F8060000 PUSH 6F8
0079057F . 68 F0304500 PUSH yglzj.004530F0
00790584 . 53 PUSH EBX
00790585 . 50 PUSH EAX
............................................................
中间一段省略
............................................................
0079062D . E8 16D1C7FF CALL
00790632 . 83C4 0C ADD ESP,0C
00790635 . 66:39BD A0FEFF>CMP WORD PTR SS:[EBP-160],DI
0079063C 0F84 16010000 JE yglzj.00790758 停在此处,往上找关键函数
00790642 . B8 04000280 MOV EAX,80020004
00790647 . 8985 58FFFFFF MOV DWORD PTR SS:[EBP-A8],EAX
0079064D . 6A 0A PUSH 0A
0079064F . 5F POP EDI
00790650 . 89BD 50FFFFFF MOV DWORD PTR SS:[EBP-B0],EDI
00790656 . 8985 68FFFFFF MOV DWORD PTR SS:[EBP-98],EAX
0079065C . 89BD 60FFFFFF MOV DWORD PTR SS:[EBP-A0],EDI
00790662 . C785 F8FEFFFF >MOV DWORD PTR SS:[EBP-108],yglzj.0044ED2>
0079066C . 89B5 F0FEFFFF MOV DWORD PTR SS:[EBP-110],ESI
00790672 . 8D95 F0FEFFFF LEA EDX,DWORD PTR SS:[EBP-110]
00790678 . 8D8D 70FFFFFF LEA ECX,DWORD PTR SS:[EBP-90]
0079067E . E8 95D0C7FF CALL
00790683 . 68 CCE94500 PUSH yglzj.0045E9CC ; UNICODE "happy new year" 看见没有,注册码错误提示
跟进00790570句,按F8继续走,会到如下:
00793118 > 55 PUSH EBP
00793119 . 8BEC MOV EBP,ESP
............................................................
中间一段省略
............................................................
007931C4 . 53 PUSH EBX
007931C5 . E8 E4A5C7FF CALL
007931CA . BA 14D84400 MOV EDX,yglzj.0044D814
007931CF . 8B4D 18 MOV ECX,DWORD PTR SS:[EBP+18]
007931D2 . E8 CFA4C7FF CALL
007931D7 . 8975 DC MOV DWORD PTR SS:[EBP-24],ESI
007931DA . 8B7D 0C MOV EDI,DWORD PTR SS:[EBP+C]
007931DD . FF37 PUSH DWORD PTR DS:[EDI]
007931DF . E8 AAA4C7FF CALL
007931E4 . 8BC8 MOV ECX,EAX
007931E6 . E8 09A5C7FF CALL
007931EB . 8985 90FEFFFF MOV DWORD PTR SS:[EBP-170],EAX
007931F1 . 895D E0 MOV DWORD PTR SS:[EBP-20],EBX
007931F4 . 6A 02 PUSH 2 以下这一段把用户名“lchhome@163.com”每个字符的ASCII值进行累加
007931F6 . 5E POP ESI .........................................
007931F7 > 8B45 E0 MOV EAX,DWORD PTR SS:[EBP-20]
007931FA . 66:3B85 90FEFF>CMP AX,WORD PTR SS:[EBP-170]
00793201 . 7F 60 JG SHORT yglzj.00793263 循环完后跳
00793203 . 899D 7CFFFFFF MOV DWORD PTR SS:[EBP-84],EBX
00793209 . 89B5 74FFFFFF MOV DWORD PTR SS:[EBP-8C],ESI
0079320F . 8D8D 74FFFFFF LEA ECX,DWORD PTR SS:[EBP-8C]
00793215 . 51 PUSH ECX
00793216 . 0FBFC0 MOVSX EAX,AX
00793219 . 50 PUSH EAX
0079321A . FF37 PUSH DWORD PTR DS:[EDI] 用户名“lchhome@163.com”入栈
0079321C . E8 61A4C7FF CALL
00793221 . 8BD0 MOV EDX,EAX
00793223 . 8D4D A0 LEA ECX,DWORD PTR SS:[EBP-60]
00793226 . E8 35A5C7FF CALL
0079322B . 50 PUSH EAX
0079322C . E8 3DA3C7FF CALL
00793231 . 66:0345 DC ADD AX,WORD PTR SS:[EBP-24] 每个字符的ASCII值逐个进行累加,我的最后累加值为“&H527”
00793235 . 0F80 99280000 JO yglzj.00795AD4
0079323B . 8945 DC MOV DWORD PTR SS:[EBP-24],EAX
0079323E . 8D4D A0 LEA ECX,DWORD PTR SS:[EBP-60]
00793241 . E8 F6A4C7FF CALL
00793246 . 8D8D 74FFFFFF LEA ECX,DWORD PTR SS:[EBP-8C]
0079324C . E8 21A5C7FF CALL
00793251 . 6A 01 PUSH 1
00793253 . 58 POP EAX
00793254 . 66:0345 E0 ADD AX,WORD PTR SS:[EBP-20] 计数器
00793258 . 0F80 76280000 JO yglzj.00795AD4
0079325E . 8945 E0 MOV DWORD PTR SS:[EBP-20],EAX
00793261 .^EB 94 JMP SHORT yglzj.007931F7 ...............................................
00793263 > 8B7D 14 MOV EDI,DWORD PTR SS:[EBP+14]
00793266 . FF37 PUSH DWORD PTR DS:[EDI]
00793268 . E8 21A4C7FF CALL
0079326D . 8BC8 MOV ECX,EAX
0079326F . E8 80A4C7FF CALL
00793274 . 8985 88FEFFFF MOV DWORD PTR SS:[EBP-178],EAX 以下是把“&H527”与机器码“64640694”每个字符进行累加
0079327A . 895D E0 MOV DWORD PTR SS:[EBP-20],EBX
0079327D > 8B45 E0 MOV EAX,DWORD PTR SS:[EBP-20] .....................................................
00793280 . 66:3B85 88FEFF>CMP AX,WORD PTR SS:[EBP-178]
00793287 . 0F8F 90000000 JG yglzj.0079331D
0079328D . 899D 7CFFFFFF MOV DWORD PTR SS:[EBP-84],EBX
00793293 . 89B5 74FFFFFF MOV DWORD PTR SS:[EBP-8C],ESI
00793299 . 8D8D 74FFFFFF LEA ECX,DWORD PTR SS:[EBP-8C]
0079329F . 51 PUSH ECX
007932A0 . 0FBFC0 MOVSX EAX,AX
007932A3 . 50 PUSH EAX
007932A4 . FF37 PUSH DWORD PTR DS:[EDI] 机器码“64640694”入栈
007932A6 . E8 D7A3C7FF CALL
007932AB . 8BD0 MOV EDX,EAX
007932AD . 8D4D A0 LEA ECX,DWORD PTR SS:[EBP-60]
007932B0 . E8 ABA4C7FF CALL
007932B5 . 50 PUSH EAX
007932B6 . E8 ABA4C7FF CALL
007932BB . DD9D 9CFEFFFF FSTP QWORD PTR SS:[EBP-164] 依次把机器码逐个字符出栈浮点寄存器
007932C1 . 0FBF45 DC MOVSX EAX,WORD PTR SS:[EBP-24] 提出用户名的累加值“&H527”
007932C5 . 8985 6CFEFFFF MOV DWORD PTR SS:[EBP-194],EAX
007932CB . DB85 6CFEFFFF FILD DWORD PTR SS:[EBP-194] 把它装入浮点寄存器
007932D1 . DD9D 64FEFFFF FSTP QWORD PTR SS:[EBP-19C] 它的十进制“1319”出栈
007932D7 . DD85 64FEFFFF FLD QWORD PTR SS:[EBP-19C]
007932DD . DC85 9CFEFFFF FADD QWORD PTR SS:[EBP-164] 把“1319”与机器码逐个字符的累加值相加,为&H54E
007932E3 . DFE0 FSTSW AX
007932E5 . A8 0D TEST AL,0D
007932E7 . 0F85 E2270000 JNZ yglzj.00795ACF
007932ED . E8 6CA3C7FF CALL
007932F2 . 8945 DC MOV DWORD PTR SS:[EBP-24],EAX
007932F5 . 8D4D A0 LEA ECX,DWORD PTR SS:[EBP-60]
007932F8 . E8 3FA4C7FF CALL
007932FD . 8D8D 74FFFFFF LEA ECX,DWORD PTR SS:[EBP-8C]
00793303 . E8 6AA4C7FF CALL
00793308 . 6A 01 PUSH 1
0079330A . 58 POP EAX
0079330B . 66:0345 E0 ADD AX,WORD PTR SS:[EBP-20]
0079330F . 0F80 BF270000 JO yglzj.00795AD4
00793315 . 8945 E0 MOV DWORD PTR SS:[EBP-20],EAX
00793318 .^E9 60FFFFFF JMP yglzj.0079327D ..................................................
0079331D > 8B4D DC MOV ECX,DWORD PTR SS:[EBP-24]
00793320 . E8 07A5C7FF CALL
00793325 . 0FBFC0 MOVSX EAX,AX 把“&H54E”放入EAX
00793328 . 69C0 40800000 IMUL EAX,EAX,8040 EAX=EAX * &H8040=&H2A85380
0079332E . 0F80 A0270000 JO yglzj.00795AD4
00793334 . 83C0 29 ADD EAX,29 EAX=EAX+&H29=&H2A853A9(44585897)
00793337 . 0F80 97270000 JO yglzj.00795AD4
0079333D . 8985 60FEFFFF MOV DWORD PTR SS:[EBP-1A0],EAX
00793343 . DB85 60FEFFFF FILD DWORD PTR SS:[EBP-1A0]
00793349 . DD5D C8 FSTP QWORD PTR SS:[EBP-38]
0079334C . D9E8 FLD1
0079334E . 833D 00B0A600 >CMP DWORD PTR DS:[A6B000],0
00793355 75 08 JNZ SHORT yglzj.0079335F
00793357 . DC35 B8174000 FDIV QWORD PTR DS:[4017B8]
0079335D . EB 11 JMP SHORT yglzj.00793370
0079335F > FF35 BC174000 PUSH DWORD PTR DS:[4017BC]
00793365 . FF35 B8174000 PUSH DWORD PTR DS:[4017B8]
0079336B . E8 E4A0C7FF CALL
00793370 > DFE0 FSTSW AX
00793372 . A8 0D TEST AL,0D
00793374 . 0F85 55270000 JNZ yglzj.00795ACF
0079337A . 51 PUSH ECX
0079337B . 51 PUSH ECX
0079337C . DD1C24 FSTP QWORD PTR SS:[ESP]
0079337F . DD45 C8 FLD QWORD PTR SS:[EBP-38]
00793382 . 51 PUSH ECX
00793383 . 51 PUSH ECX
00793384 . DD1C24 FSTP QWORD PTR SS:[ESP]
00793387 . E8 3AA1C7FF CALL
0079338C . E8 DFA2C7FF CALL
00793391 . DD5D B8 FSTP QWORD PTR SS:[EBP-48] 装入实数“81” ST1
00793394 . D9E8 FLD1
00793396 . 833D 00B0A600 >CMP DWORD PTR DS:[A6B000],0
0079339D . 75 08 JNZ SHORT yglzj.007933A7
0079339F . DC35 C0174000 FDIV QWORD PTR DS:[4017C0]
007933A5 . EB 11 JMP SHORT yglzj.007933B8
007933A7 > FF35 C4174000 PUSH DWORD PTR DS:[4017C4]
007933AD . FF35 C0174000 PUSH DWORD PTR DS:[4017C0]
007933B3 . E8 9CA0C7FF CALL
007933B8 > DFE0 FSTSW AX
007933BA . A8 0D TEST AL,0D
007933BC . 0F85 0D270000 JNZ yglzj.00795ACF
007933C2 . 51 PUSH ECX
007933C3 . 51 PUSH ECX
007933C4 . DD1C24 FSTP QWORD PTR SS:[ESP]
007933C7 . DD45 C8 FLD QWORD PTR SS:[EBP-38]
007933CA . 51 PUSH ECX
007933CB . 51 PUSH ECX
007933CC . DD1C24 FSTP QWORD PTR SS:[ESP]
007933CF . E8 F2A0C7FF CALL
007933D4 . E8 97A2C7FF CALL
007933D9 . DD5D B0 FSTP QWORD PTR SS:[EBP-50] 装入实数“354” ST2
007933DC . D9E8 FLD1
007933DE . 833D 00B0A600 >CMP DWORD PTR DS:[A6B000],0
007933E5 . 75 08 JNZ SHORT yglzj.007933EF
007933E7 . DC35 C0134000 FDIV QWORD PTR DS:[4013C0]
007933ED . EB 11 JMP SHORT yglzj.00793400
007933EF > FF35 C4134000 PUSH DWORD PTR DS:[4013C4]
007933F5 . FF35 C0134000 PUSH DWORD PTR DS:[4013C0]
007933FB . E8 54A0C7FF CALL
00793400 > DFE0 FSTSW AX
00793402 . A8 0D TEST AL,0D
00793404 . 0F85 C5260000 JNZ yglzj.00795ACF
0079340A . 51 PUSH ECX
0079340B . 51 PUSH ECX
0079340C . DD1C24 FSTP QWORD PTR SS:[ESP]
0079340F . DD45 C8 FLD QWORD PTR SS:[EBP-38]
00793412 . 51 PUSH ECX
00793413 . 51 PUSH ECX
00793414 . DD1C24 FSTP QWORD PTR SS:[ESP]
00793417 . E8 AAA0C7FF CALL
0079341C . E8 4FA2C7FF CALL
00793421 . DD5D A8 FSTP QWORD PTR SS:[EBP-58] 装入实数“6677” ST3
00793424 . DD45 C8 FLD QWORD PTR SS:[EBP-38]
00793427 . 833D 00B0A600 >CMP DWORD PTR DS:[A6B000],0
0079342E . 75 08 JNZ SHORT yglzj.00793438
00793430 . DC35 90854000 FDIV QWORD PTR DS:[408590] 把上面的EAX值(44585897)/固定实数“18633”=2392(取整数)
00793436 . EB 11 JMP SHORT yglzj.00793449
00793438 > FF35 94854000 PUSH DWORD PTR DS:[408594]
0079343E . FF35 90854000 PUSH DWORD PTR DS:[408590]
00793444 . E8 0BA0C7FF CALL
00793449 > DFE0 FSTSW AX
0079344B . A8 0D TEST AL,0D
0079344D . 0F85 7C260000 JNZ yglzj.00795ACF
00793453 . E8 18A2C7FF CALL
00793458 . DD5D D0 FSTP QWORD PTR SS:[EBP-30]
0079345B . DD45 D0 FLD QWORD PTR SS:[EBP-30]
0079345E . DC1D 501B4000 FCOMP QWORD PTR DS:[401B50]
00793464 . DFE0 FSTSW AX
00793466 . 9E SAHF
00793467 . 76 60 JBE SHORT yglzj.007934C9
............................................................
中间一段省略
............................................................
0079349F . E8 BCA2C7FF CALL
007934A4 . 50 PUSH EAX
007934A5 . E8 BCA2C7FF CALL
007934AA . DD5D D0 FSTP QWORD PTR SS:[EBP-30]
007934AD . 8D45 9C LEA EAX,DWORD PTR SS:[EBP-64]
007934B0 . 50 PUSH EAX
007934B1 . 8D45 A0 LEA EAX,DWORD PTR SS:[EBP-60]
007934B4 . 50 PUSH EAX
007934B5 . 56 PUSH ESI
007934B6 . E8 99A2C7FF CALL
007934BB . 83C4 0C ADD ESP,0C
007934BE . 8D8D 74FFFFFF LEA ECX,DWORD PTR SS:[EBP-8C]
007934C4 . E8 A9A2C7FF CALL
007934C9 > DD45 B8 FLD QWORD PTR SS:[EBP-48] 取“2392”的前两位“23”装入浮点寄位器
007934CC . DC4D D0 FMUL QWORD PTR SS:[EBP-30] ST1(81)*23=a1
007934CF . DC4D D0 FMUL QWORD PTR SS:[EBP-30] a1*23=a2
007934D2 . DC4D D0 FMUL QWORD PTR SS:[EBP-30] a2*23=a3="985527"
007934D5 . DD45 B0 FLD QWORD PTR SS:[EBP-50] 把ST2“354”装入浮点寄位器
007934D8 . DC4D D0 FMUL QWORD PTR SS:[EBP-30] ST2*23=b1
007934DB . DC4D D0 FMUL QWORD PTR SS:[EBP-30] b1*23=b2
007934DE . DEC1 FADDP ST(1),ST b2+a3=c1(1172793)
007934E0 . DD45 A8 FLD QWORD PTR SS:[EBP-58] 把ST3“6677”装入浮点寄位器
007934E3 . DC4D D0 FMUL QWORD PTR SS:[EBP-30] ST3*23=d1
007934E6 . DEC1 FADDP ST(1),ST d1+c1=e1(1326364)
007934E8 . DD5D C0 FSTP QWORD PTR SS:[EBP-40]
007934EB . DFE0 FSTSW AX
007934ED . A8 0D TEST AL,0D
007934EF 0F85 DA250000 JNZ yglzj.00795ACF
............................................................
中间一段省略
............................................................
0079354B . 8D85 64FFFFFF LEA EAX,DWORD PTR SS:[EBP-9C]
00793551 . 50 PUSH EAX
00793552 . 8D85 74FFFFFF LEA EAX,DWORD PTR SS:[EBP-8C]
00793558 . 50 PUSH EAX
00793559 . 56 PUSH ESI
0079355A . E8 E9A1C7FF CALL
0079355F . 83C4 0C ADD ESP,0C
00793562 . 66:395D A4 CMP WORD PTR SS:[EBP-5C],BX
00793566 0F85 9D000000 JNZ yglzj.00793609
经过一连串跳转后来这里:
0079396A > 66:837D A4 07 CMP WORD PTR SS:[EBP-5C],7
0079396F . 0F85 A5000000 JNZ yglzj.00793A1A
00793975 . 8D45 C8 LEA EAX,DWORD PTR SS:[EBP-38]
00793978 . 8985 FCFEFFFF MOV DWORD PTR SS:[EBP-104],EAX
0079397E . C785 F4FEFFFF >MOV DWORD PTR SS:[EBP-10C],4005
00793988 . 8D85 F4FEFFFF LEA EAX,DWORD PTR SS:[EBP-10C]
[注意]看雪招聘,专注安全领域的专业人才平台!