crakeme的程序在
http://free5.ys168.com/?hujun 不知道怎么破解的---->ex8m.exe文件
先运行程序,随便输入123456,弹出错误对话框,提示:invalid registration number!然后我用OD载入这个程序,找出提示错误的那句话,显示的代码如下:
00402179 > \8D4D E0 LEA ECX,DWORD PTR SS:[EBP-20]
0040217C . E8 5DEFFFFF CALL <JMP.&MSVBVM50.__vbaFreeStr>
00402181 . 8D4D DC LEA ECX,DWORD PTR SS:[EBP-24]
00402184 . E8 4FEFFFFF CALL <JMP.&MSVBVM50.__vbaFreeObj>
00402189 . F7DF NEG EDI
0040218B . 66:85FF TEST DI,DI
0040218E . 74 3B JE SHORT ex8m.004021CB
00402190 . B9 04000280 MOV ECX,80020004
00402195 . 894D A4 MOV DWORD PTR SS:[EBP-5C],ECX
00402198 . 6A 0A PUSH 0A
0040219A . 58 POP EAX
0040219B . 8945 9C MOV DWORD PTR SS:[EBP-64],EAX
0040219E . 894D B4 MOV DWORD PTR SS:[EBP-4C],ECX
004021A1 . 8945 AC MOV DWORD PTR SS:[EBP-54],EAX
004021A4 . C745 84 441F4>MOV DWORD PTR SS:[EBP-7C],ex8m.00401F44 ; thank you
004021AB . 6A 08 PUSH 8
004021AD . 5E POP ESI
004021AE . 89B5 7CFFFFFF MOV DWORD PTR SS:[EBP-84],ESI
004021B4 . 8D95 7CFFFFFF LEA EDX,DWORD PTR SS:[EBP-84]
004021BA . 8D4D BC LEA ECX,DWORD PTR SS:[EBP-44]
004021BD . E8 0AEFFFFF CALL <JMP.&MSVBVM50.__vbaVarDup>
004021C2 . C745 94 081F4>MOV DWORD PTR SS:[EBP-6C],ex8m.00401F08 ; thank you for registering!---->正确提示
004021C9 . EB 39 JMP SHORT ex8m.00402204
004021CB > B9 04000280 MOV ECX,80020004
004021D0 . 894D A4 MOV DWORD PTR SS:[EBP-5C],ECX
004021D3 . 6A 0A PUSH 0A
004021D5 . 58 POP EAX
004021D6 . 8945 9C MOV DWORD PTR SS:[EBP-64],EAX
004021D9 . 894D B4 MOV DWORD PTR SS:[EBP-4C],ECX
004021DC . 8945 AC MOV DWORD PTR SS:[EBP-54],EAX
004021DF . C745 84 F81E4>MOV DWORD PTR SS:[EBP-7C],ex8m.00401EF8 ; error
004021E6 . 6A 08 PUSH 8
004021E8 . 5E POP ESI
004021E9 . 89B5 7CFFFFFF MOV DWORD PTR SS:[EBP-84],ESI
004021EF . 8D95 7CFFFFFF LEA EDX,DWORD PTR SS:[EBP-84]
004021F5 . 8D4D BC LEA ECX,DWORD PTR SS:[EBP-44]
004021F8 . E8 CFEEFFFF CALL <JMP.&MSVBVM50.__vbaVarDup>
004021FD . C745 94 B81E4>MOV DWORD PTR SS:[EBP-6C],ex8m.00401EB8 ; invalid registration number!--->错误提示
这种方法不知道怎么改,我重新ctrl+F2载入程序,ctrl+n,希望可以找到可以下断的函数,这是一个vb程序,我想在_vbaStrComp或_vbaStrCmp等下断,可是没有找到,我看到也不找到应该在哪里下断:
名称位于 ex8m
地址 区段 类型 ( 名称 注释
0040413C .idata 输入 MSVBVM50.#100
004040EC .idata 输入 MSVBVM50.#595
004040F4 .idata 输入 MSVBVM50._adj_fdivr_m16i
00404134 .idata 输入 MSVBVM50._adj_fdivr_m32
00404130 .idata 输入 MSVBVM50._adj_fdivr_m32i
0040411C .idata 输入 MSVBVM50._adj_fdivr_m64
004040F0 .idata 输入 MSVBVM50._adj_fdiv_m16i
004040DC .idata 输入 MSVBVM50._adj_fdiv_m32
0040412C .idata 输入 MSVBVM50._adj_fdiv_m32i
004040D0 .idata 输入 MSVBVM50._adj_fdiv_m64
00404138 .idata 输入 MSVBVM50._adj_fdiv_r
00404104 .idata 输入 MSVBVM50._adj_fpatan
00404118 .idata 输入 MSVBVM50._adj_fprem
004040D4 .idata 输入 MSVBVM50._adj_fprem1
004040C8 .idata 输入 MSVBVM50._adj_fptan
00404148 .idata 输入 MSVBVM50._allmul
00404144 .idata 输入 MSVBVM50._CIatan
004040C4 .idata 输入 MSVBVM50._CIcos
00404150 .idata 输入 MSVBVM50._CIexp
00404124 .idata 输入 MSVBVM50._CIlog
004040F8 .idata 输入 MSVBVM50._CIsin
0040410C .idata 输入 MSVBVM50._CIsqrt
0040414C .idata 输入 MSVBVM50._CItan
00404100 .idata 输入 MSVBVM50.EVENT_SINK_AddRef
00404110 .idata 输入 MSVBVM50.EVENT_SINK_QueryInterface
00404108 .idata 输入 MSVBVM50.EVENT_SINK_Release
004040FC .idata 输入 MSVBVM50.__vbaChkstk
00404114 .idata 输入 MSVBVM50.__vbaExceptHandler
004040E0 .idata 输入 MSVBVM50.__vbaExitProc
00404120 .idata 输入 MSVBVM50.__vbaFPException
00404158 .idata 输入 MSVBVM50.__vbaFreeObj
00404154 .idata 输入 MSVBVM50.__vbaFreeStr
004040CC .idata 输入 MSVBVM50.__vbaFreeVarList
004040D8 .idata 输入 MSVBVM50.__vbaHresultCheckObj
004040E8 .idata 输入 MSVBVM50.__vbaObjSet
004040E4 .idata 输入 MSVBVM50.__vbaOnError
00404128 .idata 输入 MSVBVM50.__vbaR8Str
00404140 .idata 输入 MSVBVM50.__vbaVarDup
00401114 .text 输出 <模块入口点> (初始 cpu 选择)
我研究了很久也不知道它跳到错误的关键call在哪里或者应该在什么函数上面下断,如果要暴力破解它,应怎么改跳转,如果你有耐心,可以告诉我它的算法吗,谢谢哪位高手指点一下下=.=
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)