feat: add friend source spoof

This commit is contained in:
rhunk
2023-08-31 15:42:24 +02:00
parent c791fbbd00
commit dded6acff0
9 changed files with 112 additions and 4 deletions

View File

@ -0,0 +1,27 @@
package me.rhunk.snapmapper.impl
import me.rhunk.snapmapper.AbstractClassMapper
import me.rhunk.snapmapper.MapperContext
import me.rhunk.snapmapper.ext.findConstString
import me.rhunk.snapmapper.ext.getClassName
import me.rhunk.snapmapper.ext.isEnum
class FriendRelationshipChangerMapper : AbstractClassMapper() {
override fun run(context: MapperContext) {
for (classDef in context.classes) {
classDef.methods.firstOrNull { it.name == "<init>" }?.implementation?.findConstString("FriendRelationshipChangerImpl")?.takeIf { it } ?: continue
val addFriendMethod = classDef.methods.first {
it.parameterTypes.size > 4 &&
context.getClass(it.parameterTypes[1])?.isEnum() == true &&
context.getClass(it.parameterTypes[2])?.isEnum() == true &&
context.getClass(it.parameterTypes[3])?.isEnum() == true &&
it.parameters[4].type == "Ljava/lang/String;"
}
context.addMapping("FriendRelationshipChanger",
"class" to classDef.getClassName(),
"addFriendMethod" to addFriendMethod.name
)
}
}
}

View File

@ -24,6 +24,7 @@ class TestMappings {
FriendsFeedEventDispatcherMapper::class,
CompositeConfigurationProviderMapper::class,
ScoreUpdateMapper::class,
FriendRelationshipChangerMapper::class,
)
val gson = GsonBuilder().setPrettyPrinting().create()