{"id":13482472,"url":"https://github.com/anjia0532/unidbg-boot-server","last_synced_at":"2025-05-15T20:06:04.330Z","repository":{"id":41166972,"uuid":"400134875","full_name":"anjia0532/unidbg-boot-server","owner":"anjia0532","description":"unidbg-server 提供http api服务","archived":false,"fork":false,"pushed_at":"2024-11-25T01:15:31.000Z","size":2772,"stargazers_count":415,"open_issues_count":1,"forks_count":140,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-04-08T06:35:32.522Z","etag":null,"topics":["android","ios","java","unicorn","unicorn-emulator","unidbg","xhook"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anjia0532.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-26T10:50:57.000Z","updated_at":"2025-04-05T08:27:18.000Z","dependencies_parsed_at":"2024-01-13T18:24:26.739Z","dependency_job_id":"754153e5-920f-46ec-ac21-2ea1a13248c5","html_url":"https://github.com/anjia0532/unidbg-boot-server","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anjia0532%2Funidbg-boot-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anjia0532%2Funidbg-boot-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anjia0532%2Funidbg-boot-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anjia0532%2Funidbg-boot-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anjia0532","download_url":"https://codeload.github.com/anjia0532/unidbg-boot-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254414499,"owners_count":22067272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","ios","java","unicorn","unicorn-emulator","unidbg","xhook"],"created_at":"2024-07-31T17:01:02.331Z","updated_at":"2025-05-15T20:05:59.294Z","avatar_url":"https://github.com/anjia0532.png","language":"Java","funding_links":[],"categories":["网络编程","Java"],"sub_categories":["Spring Cloud框架"],"readme":"# 基于unidbg0.9.8和spring boot 2.6.3开发的高并发server服务器\n\n## 重要说明\n\n**注意：**\n本项目仅是unidbg项目的springweb的简单封装，如果遇到问题，请先看看[常见问题](QA.md)，如果还是不能解决，请尝试更换写法，包括但不限于：多线程改单线程，在请求方法new unidbg对象等。\n我已将近两年不用unidbg（以及Android逆向等方面了），所以也不太会维护，如果有问题，欢迎提交pr。\n\n- [关于是否开源基于Jnitrace日志补环境代码说明](https://github.com/anjia0532/unidbg-boot-server/issues/1)\n- [常见问题 -- 遇到问题先看看这里有没有，再提问，心累](QA.md) \n- [unidbg-boot-server零基础入门](https://juejin.cn/post/7025794546655035422)\n- [指定版本自动编译葫芦娃frida strongR-frida-android](https://github.com/anjia0532/strongR-frida-android)\n- [Worker多线程运行内存报错问题](QA.md#Worker多线程运行内存报错问题)\n- [UnidbgServer运行一段时间后拒绝服务或无响应](QA.md#UnidbgServer运行一段时间后拒绝服务或无响应)\n\n\n## 使用\n\n### 环境准备\n\n1. 必须使用Java8(jdk11或其他版本引发的问题，请自行解决)\n2. Maven3.5以上 ，如果电脑没有安装Maven，最简单办法是将下面的 `mvn` 命令替换成 `mvnw`(如果是linux/mac一类的，要替换成`./mvnw`,并且先执行`chmod +x ./mvnw`) ，会自动下载maven \n3. Idea 2021+\n4. 需要安装[Lombok插件](https://plugins.jetbrains.com/plugin/6317-lombok)\n5. 注意，很多人不会用多线程以及 unidbg 对多线程支持的不好，所以默认禁用多线程，如果需要启用，修改 application.yml 里的 async 为 true\n\n## 快速体验\n\n```bash\ngit clone https://github.com/anjia0532/unidbg-boot-server.git\n\n# 体验jar版本,打成jar包\nmvn package -T10 -DskipTests\n# 没有maven就用 mvnw package -T10 -DskipTests (linux等需要用 chmod +x ./mvnw \u0026\u0026 ./mvnw package -T10 -DskipTests)\n\njava -jar target\\unidbg-boot-server-0.0.1-SNAPSHOT.jar\n\n# 体验docker版本\ndocker run --restart=always -d -p9999:9999 anjia0532/unidbg-boot-server \n```\n\n## 调用\n\n启动成功后会打印类似内容\n\n```bash\n----------------------------------------------------------\n\t应用: \t\tunidbg-boot-server 已启动!\n\t地址: \t\thttp://127.0.0.1:9999/\n\t演示访问: \tcurl http://127.0.0.1:9999/api/tt-encrypt/encrypt (linux)\n\t演示访问: \thttp://127.0.0.1:9999/api/tt-encrypt/encrypt (windows: 浏览器直接打开)\n\t常见问题: \thttps://github.com/anjia0532/unidbg-boot-server/blob/main/QA.md\n\t配置文件: \t[application, application-dev]\n----------------------------------------------------------\n```\n\n```bash\n# GET 方式访问\ncurl -XGET  http://127.0.0.1:9999/api/tt-encrypt/encrypt\n\n# POST 方式访问\ncurl -XPOST  http://127.0.0.1:9999/api/tt-encrypt/encrypt\n```\n\n## 压测\n\n在我个人开发电脑上(`Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz   2.60 GHz`,`32.0 GB (31.9 GB 可用)`,`win 11 64位`)，压测结果是每秒4003.10次(QPS 4003.10) ，wrk相关教程，可以参考 [HTTP压测工具之wrk](https://www.jianshu.com/p/ac185e01cc30)\n\n```\n[root@wrk]# docker run --rm  williamyeh/wrk -t12 -c400 -d30s http://127.0.0.1:9999/api/tt-encrypt/encrypt\nRunning 30s test @ http://127.0.0.1:9999/api/tt-encrypt/encrypt\n  12 threads and 400 connections\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency   105.55ms   68.17ms 982.93ms   94.97%\n    Req/Sec   341.43     55.05   460.00     80.70%\n  120432 requests in 30.08s, 14.72MB read\n  Socket errors: connect 0, read 0, write 81, timeout 0\nRequests/sec:   4003.10\nTransfer/sec:    501.09KB\n```\n\n瓶颈在cpu上,demo内存基本在400-600M左右，不会随着并发高而暴涨(注意，仅是此demo情况下，具体还是看实际业务复杂度)\n\n![](docs/1.png)\n\n### 使用定制化/快照版unidbg\n\n```bash\ngit clone https://github.com/zhkl0228/unidbg.git\n# 自己魔改\ncd unidbg\n# linux mac windows cmd\nmvn clean install -Dgpg.skip=true -Dmaven.javadoc.skip=true -T10\n# windows powershell\nmvn clean install `-Dgpg.skip=true `-Dmaven.javadoc.skip=true `-T10\n```\n\n以最新快照版 `0.9.5-SNAPSHOT` 为例，修改 `unidbg-boot-server/pom.xml` 里的 `\u003cunidbg.version\u003e0.9.4\u003c/unidbg.version\u003e`\n为 `\u003cunidbg.version\u003e0.9.5-SNAPSHOT\u003c/unidbg.version\u003e`\n\n后续java打包或者docker不变\n\n### java 打包\n\n```\n# 打包\nmvn package -T10 -DskipTests\n# 运行\njava -jar target\\unidbg-boot-server-0.0.1-SNAPSHOT.jar\n```\n\n### docker打包\n\n用docker打包是为了避免个人电脑和生产服务器环境不一致导致的启动失败或者各种问题，保证了开发和生产环境的一致性，以及快速安装等需求\n\n如何安装docker 参考docker官方文档 https://docs.docker.com/engine/install/\n\n**注意**\n\n- 如果是windows的powershell, - 需要改成 `- ,建议windows用cmd\n- 将 your_docker_hub_username 换成真实的用户名 ,将 your_docker_hub_password 换成真实的密码\n\n```bash\n\n# 方案1 打包并发布到docker hub\nmvn clean package -Djib.to.auth.username=your_docker_hub_username  -Djib.to.auth.password=your_docker_hub_password -Djib.to.image=your_docker_hub_username/unidbg-boot-server  jib:build -Dmaven.test.skip=true --batch-mode -T4\n\n# 方案2 直接打到docker 守护进程里\nmvn clean package  -Djib.to.image=your_docker_hub_username/unidbg-boot-server  jib:dockerBuild -Dmaven.test.skip=true --batch-mode -T4\n\n# 方案3 打成docker.tar二进制包\nmvn clean package  -Djib.to.image=your_docker_hub_username/unidbg-boot-server  jib:buildTar -Dmaven.test.skip=true --batch-mode -T4\ndocker load --input target/jib-image.tar\n\n# 在装有docker的机器上运行\nsudo docker run  -d -p9999:9999 your_docker_hub_username/unidbg-boot-server \n\n```\n\n## 感谢\n\n- [zhkl0228/unidbg](https://github.com/zhkl0228/unidbg)\n\n## [常见问题](QA.md)\n\n参见  [QA.md](QA.md)\n\n## 请我喝杯咖啡\n\n如果觉得本项目对你有所帮助，可以请我喝杯咖啡吗？\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd \u003e\u003ccenter\u003e\u003cimg src=\"./docs/wechat.png\" \u003e微\u0026nbsp;\u0026nbsp;信\u003c/center\u003e\u003c/td\u003e\n        \u003ctd \u003e\u003ccenter\u003e\u003cimg src=\"./docs/alipay.jpg\" \u003e支付宝\u003c/center\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n![知识星球](./docs/zsxq.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanjia0532%2Funidbg-boot-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanjia0532%2Funidbg-boot-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanjia0532%2Funidbg-boot-server/lists"}