我想给FOXMAIL做个SMC,要改一个字符,用mov byte ptr[xxx], xx改了以后OD报访问非法,调用如下:
004AF47E |. FF75 DC PUSH DWORD PTR SS:[EBP-24]
004AF481 68 04F64A00 PUSH Foxmail.004AF604 ; ASCII " 5"
004AF486 |. 8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20]
004AF489 |. BA 03000000 MOV EDX,3
004AF48E |. E8 414CF5FF CALL Foxmail.004040D4
004AF493 |. 8B55 E0 MOV EDX,DWORD PTR SS:[EBP-20]
004AF496 |. 8BC3 MOV EAX,EBX
004AF604的内容:
004AF5FB 00 DB 00
004AF5FC . FFFFFFFF DD FFFFFFFF
004AF600 . 02000000 DD 00000002
004AF604 . 20 35 00 ASCII " 5",0
004AF607 00 DB 00
我插入一段代码来改这个004AF604的值.
报错以后我怀疑004AF604放的是一个常量,然后自己找块空间放了个新值:
0057A6FB 00 DB 00
0057A6FC 2031 AND BYTE PTR DS:[ECX],DH ;" 1"
0057A6FE 00 DB 00
然后改上面的push为
PUSH Foxmail.0057A6FC
但是运行到最后FOXMAIL竟然是死掉了.(如果只是改原地址的值,只报错,不死,指到新地址就会死)
不知道是什么原因,请大家指教
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课