冰楓論壇

標題: 技能注入求助 [打印本頁]

作者: ningmeng    時間: 2022-4-16 01:02
標題: 技能注入求助
代码是我自己拼接的,找了个hook点,使用后,游戏直接闪退了。
小弟想求助各位大佬
1.帮忙看一下这一段代码错在了哪里?
2.是不是要alloc一块内存,然后 lea rsp,[申请的内存]?
3.类似mov [rsp+58],r12d 这种,是不是可以直接写成  mov [rsp+58],00000000,不再从 r12d中取值了?
  1. //TwMS V242.1
  2. SkillIn:
  3. push eax
  4. push r8d
  5. push r9
  6. call 143978B80
  7. mov r8d,eax
  8. sub r8d,[Timer]
  9. cmp r8d,[Delay]
  10. jl SkillInMY_Exit
  11. mov [Timer],eax

  12. mov rbx,[145A511A8]
  13. mov rcx,[145A50C10]
  14. call 143B8A960
  15. mov r8d,[skillid]
  16. mov dword ptr [rbx+0001FF34],r8d
  17. mov r8d,[rbx+0001FF34]
  18. lea r9,[rsp+00000100]
  19. mov rcx,[145A50C08]
  20. mov rdx,r15
  21. mov [rsp+38],00000001
  22. mov [rsp+30],r12d
  23. mov [rsp+28],r12d
  24. mov [rsp+20],r12d
  25. mov [rsp+00000100],r12
  26. call 1407F74D0
  27. mov rdx,[rsp+00000100]
  28. xor r9d,r9d
  29. mov [rsp+000000A8],r12l
  30. mov r8d,edi
  31. mov [rsp+000000A0],r12
  32. mov rcx,rbx
  33. mov [rsp+00000098],r12l
  34. mov [rsp+00000090],r12d
  35. mov [rsp+00000088],r12d
  36. mov [rsp+00000080],r12l
  37. mov [rsp+78],r12d
  38. mov [rsp+70],r12d
  39. mov [rsp+68],r12l
  40. mov [rsp+60],r12d
  41. mov [rsp+58],r12d
  42. mov [rsp+50],r12d
  43. mov [rsp+48],r12d
  44. mov [rsp+40],r12d
  45. mov [rsp+38],r12
  46. mov [rsp+30],r12d
  47. mov [rsp+28],r12d
  48. mov [rsp+20],r12d
  49. call 14372C730

  50. SkillInMY_Exit:
  51. pop eax
  52. pop r8d
  53. pop r9
  54. jmp 原地址
複製代碼

作者: 仁二    時間: 2022-4-26 11:19
push eax
push r8d
push r9
sub rsp,118 // 这里先申请一段rsp空间 因为你下面调用的call需要
//开始调用你需要的内容
mov rcx,[xxx]//在这里你就要确保一下rsp是否 16字节对齐了 不然可能调用到一些会飞游戏
call 技能攻击//
add rsp,118 //还原rsp
pop eax //还原摆放顺序错了。。这里应该放pop r9
//(还有eax一般情况下不需要保护 除非hook的位置需要)
pop r8d
pop r9 //这里是你首次push的 则pop eax(现在一般都是rax你push eax默认也会帮你改成rax?)


回复一下 第二个问题
2.是不是要alloc一块内存,然后 lea rsp,[申请的内存]?
这个的话 我有尝试过 似乎不用游戏范围内的rsp另外有检测 不能乱写。。
就按照上面说的sub rsp,xx来申请空间就行 用完记得add回来






歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓