在家呆着无聊,本着下个游戏练习练习技术,顺带打发无聊的时间,就开始了小白的探索之路。
打开lib文件夹下 ,游戏是unity + mono框架,开心!不过却发现特别的地方----libxlua.so!
而打开apk\assets\bin\Data\Managed文件夹下却没有发现关键的Assembly-CSharp.dll文件。
这可难倒我了,直接百度,在这篇博客给了我启发: Assembly.Load(byte[] rawAssembly)这个接口,看看有没有发现,至于实际上在哪里加载的,暂时就不管了,反正最终都要调用这个接口,那就直接在这个接口做文章。
加入代码后保存,替换安装包的dll,运行游戏,坐等剩余的dll dump出来。
居然是 关键的Assembly-CSharp.dll文件。不过怎么都是LUA相关的呢?那就试试搜索 luaL_loadbuffer方法试试,有两个,最终都会调用 xluaL_loadbuffer这个方法加载脚本,那就通过打印日志的方式,看看脚本在哪里调用了这个方法。
修改之后,怎么把 Assembly-CSharp.dll替换回去呢?那就是从哪dump出来的,就从那里替换回去。
运行游戏就可以看到打印的日志信息了。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
wx_时光丶老了少年 大佬,IDA中如何分析加密函数啊,也想解密il2cpp模式得资源
帖子真棒学习了