爱琴海
Function InStr([Start], [String1], [String2],&am ...
谢谢爱情海大哥的回复,我是粗心了点,接下来遇到个新问题,有点困惑,因为无论调用__vbaInStr或者rtcReplace,寄存器中查看eax返回永远是0,参数设置应该都没问题,查了下资料,前面两个函数结果也都应该保存在eax中,所以发问来求解答,谢谢!
★★★★
00437095 . 8B4D E8 mov ecx,dword ptr ss:[ebp-0x18] ; 调用replace地址
00437098 . 6A 00 push 0x0
0043709A . 6A FF push -0x1
0043709C . 8BF0 mov esi,eax
0043709E . 6A 01 push 0x1
004370A0 . 8D55 AC lea edx,dword ptr ss:[ebp-0x54]
004370A3 . 8B3E mov edi,dword ptr ds:[esi]
004370A5 . 51 push ecx
004370A6 . 8D45 DC lea eax,dword ptr ss:[ebp-0x24] ; 这个随意修改好像会出错导致程序运行崩溃
004370A9 .^ E9 D2CBFCFF jmp Rolan.00403C80 ; NOP掉一段call,然后jmp到__vbaInStr函数调用,处理一
段字符串
004370AE 90 nop ; 似乎这样处理没有运行弹错,下面的rtcReplace也能运行
004370AF 90 nop
004370B0 90 nop
004370B1 > 8B4D E0 mov ecx,dword ptr ss:[ebp-0x20]
004370B4 . 50 push eax
004370B5 . 51 push ecx
004370B6 . FF15 74114000 call dword ptr ds:[<&MSVBVM60.#712>] ; msvbvm60.rtcReplace 这里堆栈中数据正确,但是eax返回
也为0
004370BC . 8BD0 mov edx,eax
★★★★
00403C80 > /6A 01 push 0x1 ; 子程序
00403C82 . |68 B03C4000 push Rolan.00403CB0 ; UNICODE "F:\Rolan\破解工具集\设置路径3.exe"
00403C87 . |68 A03C4000 push Rolan.00403CA0 ; UNICODE "\Rolan"
00403C8C . |6A 01 push 0x1
00403C8E . |FF15 D4114000 call dword ptr ds:[<&MSVBVM60.__vbaInStr>; msvbvm60.__vbaInStr
00403C94 . |8BD0 mov edx,eax
00403C96 . |E9 16340300 jmp Rolan.004370B1
★★★★