在家呆着无聊,本着下个游戏练习练习技术,顺带打发无聊的时间,就开始了小白的探索之路。
打开lib文件夹下 ,游戏是unity + mono框架,开心!不过却发现特别的地方----libxlua.so!
而打开apk\assets\bin\Data\Managed文件夹下却没有发现关键的Assembly-CSharp.dll文件。
这可难倒我了,直接百度,在这篇博客给了我启发:d53K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2U0L8X3u0D9L8$3N6K6i4K6u0W2j5$3!0E0i4K6u0r3k6h3&6A6j5h3x3I4z5e0b7$3i4K6u0r3M7q4)9J5c8U0M7J5y4o6b7@1x3o6m8Q4x3X3g2Z5N6r3#2D9i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1#2i4K6R3#2i4K6R3^5i4@1f1^5i4@1q4r3i4K6V1#2i4@1f1^5i4@1q4r3i4K6V1#2 Assembly.Load(byte[] rawAssembly)这个接口,看看有没有发现,至于实际上在哪里加载的,暂时就不管了,反正最终都要调用这个接口,那就直接在这个接口做文章。
加入代码后保存,替换安装包的dll,运行游戏,坐等剩余的dll dump出来。
居然是 关键的Assembly-CSharp.dll文件。不过怎么都是LUA相关的呢?那就试试搜索 luaL_loadbuffer方法试试,有两个,最终都会调用 xluaL_loadbuffer这个方法加载脚本,那就通过打印日志的方式,看看脚本在哪里调用了这个方法。
修改之后,怎么把 Assembly-CSharp.dll替换回去呢?那就是从哪dump出来的,就从那里替换回去。
运行游戏就可以看到打印的日志信息了。
[培训]科锐逆向工程师培训第53期2025年7月8日开班!
wx_时光丶老了少年 大佬,IDA中如何分析加密函数啊,也想解密il2cpp模式得资源
帖子真棒学习了