XMDS

Results 61 comments of XMDS

@shuajinanhai 因为用了多个hook框架hook同一个位置。 AndHook的跳板指令和sub hook是一样的, 并且没有额外的其它处理,所以它们是兼容的,但是shadow hook虽然跳板指令一样,shared模式有一些额外处理,例如trampoline,所以导致冲突崩溃。 用unique模式试试。(顺便说下,如果是thumb 和arm32,sub hook其实备份了10/12字节,而shadow hook应该是8/10字节) 如果还是不兼容,不要使用多个不同的inline hook框架。 还有其他办法解决你目前的问题,例如使用plt/got hook。也可以hook 上级调用。或者先计算出and hook注入的代理函数地址,然后使用shadow hook注入,这样你在自己继续hook是完全兼容的

> > @shuajinanhai我最开始也有同样的问题,因为用了多个hook框架hook同一个位置。 > > > > AndHook的跳板指令和sub hook是一样的,而且没有前端的其他处理,所以它们是包容的,但是shadow hook虽然跳板指令一样,共享模式有一些前端处理,例如蹦床,所以导致冲击崩溃。使用独特的 模式试试。(顺便说下,如果是thumb 和arm32,sub hook其实现部分了10/12字节,而shadow hook应该是8/10字节) > > > > 如果还是不包括,不要使用多个不同的内联hook框架。 还有其他方法解决你目前的问题,例如使用plt/got hook。也可以使用hook上一级调用。先计算出并钩注输入的代理函数地址,然后使用shadow hook注册,这样你在自己继续hook是完全包容的 > > shared、unique两种模式我都试过,都会崩溃哈 你不应该同时使用多个inline hook项目。它们之间不兼容是必然的(简单的inlinehook框架除外),因为它们覆盖的指令字节数、跳板指令、对代理函数的处理不同。对于游戏hook你只使用subhook就够了,因为它很简单。另外,像我上面说的,您可以自己处理兼容,把别人使用AndHook AKHookFunction注入的代理函数地址取出来,在使用shadow hook注入。这样你就可以兼容只使用shadow hook框架

> 理论上来说,只要各个 inlinehook 库的指令修复操作都正确,并且各个代理函数都正确调用了“原函数”,就可以同一个位置用多个 inlinehook 库先后 hook,不会有问题,后 hook 的代理函数会先执行。 > > @shuajinanhai 看你的描述,有点像是 AndHook 对 “shadowhook hook 之后的原函数头部的指令” 的修复有问题。armeabi-v7a 中,shadowhook 会先尝试用一个 4 字节的相对跳转,如果不可行,会用 8 或 10 字节的绝对跳转。substrate 应该始终是用绝对跳转,所以可能是 AndHook 对...

@caikelun 关于备份指令我有一个问题。 shadow hook在4字节对齐的地址上备份8字节,否则则填充2字节nop 备份10字节。 那么它是如何处理下面这种函数首指令情况: ``` 2+4+4+2 (2代表2字节T16指令,4代表T32指令) ``` 这里如果首地址处于4字节对齐的情况下,备份8字节会导致第3个T32指令被截断。只能备份10字节,可是不应该是检测hook处地址处于不对齐情况下,才备份10字节吗? 当然还有其他情况,例如2+4+2+4,假设处于2字节对齐的地址上,备份10字节又会对最后一个T32指令截断。

AML may be compatible with more Android games. But first about the update direction of the GTA series of games: 1. Support GTA3 VC SA LCS CW. Whether we write...

> Please add a guide on how to create a plugin and use AML on other games too. This should not be discussed here. No one here will provide a...

> Real time shadows for all objects for sa android like in pc This discussion is about updates to AML (itself), not any other game-specific plugins

@RusJJ What do you think? Updates on hooks. Anyway, AML provides AML classes (IAML), which provide some basic hook functions, which come from the ARMPatch project, but we should update...

> For example? For example, implement the hook of any address position in the function, and read and write the value of any register. When I sent you a private...

Like I said, I could update the `ARMPatch` project and should even reimplement it. However, the `aml class` of the `AML` project should not include all of them. `AML` itself...