zhkl0228 / unidbg

Allows you to emulate an Android native library, and an experimental iOS emulation
Apache License 2.0
3.88k stars 966 forks source link

不能模拟生成随机数 #182

Closed darkgirl closed 4 years ago

darkgirl commented 4 years ago

我测试的so里面有调用 lrand48() % 3; 但是输出结果一直返回1

请问这个该怎么处理呢?

zhkl0228 commented 4 years ago

打开log4j的调试开关,看是哪个系统调用,再针对性的做修改

darkgirl commented 4 years ago

log4j

好的, 多谢, 我去试试

darkgirl commented 4 years ago

打开log4j的调试开关,看是哪个系统调用,再针对性的做修改

你好, 我试着打开所有调试信息 Logger.getRootLogger().setLevel(Level.ALL); 不过没发现输出随机数函数的信息, 只有转换随机数结果为Java String相关的信息, 这个随机数是在so里面生成的, lrand48() % 3;这条我是通过IDA静态汇编看到的, 这个调用是不是要用IDA动态调试

zhkl0228 commented 4 years ago

提供测试用例看下

darkgirl commented 4 years ago

提供测试用例看下

测试用例太复杂了, 而且我发现每一次重新启动的时候出现的随机数都是1, 但是启动后多运行几次是能够随机的 本来想看看自己能不能优化下, 不过没找到地方, 问题也不是很大, 就这样了吧, 多谢

另外, 再请教两个问题: 1, 能否自己用ndk编译一个so调用某个apk中的java类和函数, 然后用unidbg加载这个so? 2, 如何自己实现AndroidResolver? 我在跟踪代码的时候发现test下面的 运行时有几个so加载失败, 我从Android ndk中找到对应version的so复制到src/main/resources/android下对应的文件夹下后发现能成功加载,所以直接用对应version的ndk编译so添加到src/main/resources/android对应目录下就可以了是吧? 不过我没找到libcpp.so, 不知道这个so时哪个项目编译的

zhkl0228 commented 4 years ago

libcpp.so是libc++.so,有些系统so依赖过多,所以没加入进来,有些使用到的依赖可以使用VirtualModule替代

On Mon, Sep 14, 2020 at 19:13 darkgirl notifications@github.com wrote:

提供测试用例看下

测试用例太复杂了, 而且我发现每一次重新启动的时候出现的随机数都是1, 但是启动后多运行几次是能够随机的 本来想看看自己能不能优化下, 不过没找到地方, 问题也不是很大, 就这样了吧, 多谢

另外, 再请教两个问题: 1, 能否自己用ndk编译一个so调用某个apk中的java类和函数, 然后用unidbg加载这个so? 2, 如何自己实现AndroidResolver? 我在跟踪代码的时候发现test下面的 运行时有几个so加载失败, 我从Android ndk中找到对应version的so复制到src/main/resources/android下对应的文件夹下后发现能成功加载,所以直接用对应version的ndk编译so添加到src/main/resources/android对应目录下就可以了是吧? 不过我没找到libcpp.so, 不知道这个so时哪个项目编译的

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/zhkl0228/unidbg/issues/182#issuecomment-691985612, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKSR73Y7YL5BXTAYJ4QHQ3SFX3D7ANCNFSM4RKSYKEQ .

darkgirl commented 4 years ago

libcpp.so是libc++.so,有些系统so依赖过多,所以没加入进来,有些使用到的依赖可以使用VirtualModule替代 On Mon, Sep 14, 2020 at 19:13 darkgirl @.***> wrote: 提供测试用例看下 测试用例太复杂了, 而且我发现每一次重新启动的时候出现的随机数都是1, 但是启动后多运行几次是能够随机的 本来想看看自己能不能优化下, 不过没找到地方, 问题也不是很大, 就这样了吧, 多谢 另外, 再请教两个问题: 1, 能否自己用ndk编译一个so调用某个apk中的java类和函数, 然后用unidbg加载这个so? 2, 如何自己实现AndroidResolver? 我在跟踪代码的时候发现test下面的 运行时有几个so加载失败, 我从Android ndk中找到对应version的so复制到src/main/resources/android下对应的文件夹下后发现能成功加载,所以直接用对应version的ndk编译so添加到src/main/resources/android对应目录下就可以了是吧? 不过我没找到libcpp.so, 不知道这个so时哪个项目编译的 — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#182 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKSR73Y7YL5BXTAYJ4QHQ3SFX3D7ANCNFSM4RKSYKEQ .

好的, 非常感谢