Skip to content

Commit

Permalink
7.68 auto-commit
Browse files Browse the repository at this point in the history
  • Loading branch information
rev1si0n committed Jul 14, 2024
1 parent b45e2f6 commit 2f315bf
Show file tree
Hide file tree
Showing 9 changed files with 83 additions and 6 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
7.68
* 优化 h264 实时屏幕

7.67
* 精简掉部分无效的程序逻辑
* 修复自动恢复时间过长的问题
Expand Down
38 changes: 34 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,46 @@ LAMDA 是一个用于逆向及自动化的辅助框架,设计为减少安全
<p align="center"><small>关注公众号查看视频教程以及更多使用方法</small><br><small><b>知识应该是共享的,我们不会要求你为相关知识付费</b></small><br><br><small><a href="https://space.bilibili.com/1964784386/video">BILIBILI 同步发布</a></small><br><small>文字版文档请查看<a href="https://github.com/rev1si0n/lamda/wiki">使用文档</a></small></small>
</p>


经过超 500 台设备的稳定生产环境考验,具有近乎商业级软件的质量和稳定性,仅需 root 权限即可正常运行。具备 ARM/X86 全架构,安卓 6.0-14 的广泛兼容性,支持模拟器、真机、云手机、 WSA(Windows Subsystem for Android™️)、无头开发板以及 Redroid。提供大量可编程接口,支持界面布局检视、获取/重放系统中最近的 Activity、唤起应用的 Activity 等功能。除此之外,它支持大文件上传下载,远程桌面,以及UI自动化编程接口,点击、截图、获取界面元素、执行 shell 命令、设备状态、资源读取、系统配置、属性读写、一键中间人等,可通过 SSH 或内置 ADB 登录设备终端。具备 socks5、OpenVPN 代理并可通过接口轻松设置系统证书及中间人,同时支持定时任务、Magisk开机自启动,你可以在任何地方通过网络连接运行着 LAMDA 设备。

![动图演示](image/demo.gif)
<h3><p align="center">星火设备管理系统</p></h3>

<p align="center">星火设备管理系统是用于管理运行着 LAMDA 的设备管控平台,他可以集中管理您分散全国各地不同网络的安卓设备。真正的弱中心化分布式设备管理,您与所有设备都可以是相隔天涯海角,所有设备都是以您为中心,您在哪,设备就在哪。您无需自行购买任何或者搭建任何服务器资源,只需您自己的电脑即可使用。多年技术积累,专注解决行业痛点及难题。</p>

<p align="center"><small>首发低至 ¥3 元 5台</small><br><small><b>您可以关注上方公众号后在菜单订阅及查看使用教程</b></small></p>

<p align="center">
<img src="image/overview.png" alt="设备管理平台" width="95%">
</p>
<p align="center">
<img src="image/detail.png" alt="设备管理平台" width="95%">
</p>
<p align="center">
<img src="image/totalview.png" alt="设备管理平台" width="95%">
</p>

<h3><p align="center">丰富的设备编程接口</p></h3>

## 一键中间人流量分析
<p align="center">LAMDA 提供多达 160 条编程 API 接口,让你可以对安卓设备进行无微不至的管理和操作,提供了包括命令执行,系统设置,系统状态,应用相关,自动化相关,代理以及文件等十几个大类的接口。同时提供了封装完整的 Python 库让你可以快速上手使用。</p>

<p align="center">
<img src="image/api.png" alt="动图演示" width="95%">
</p>


<h3><p align="center">简洁易用的界面</p></h3>

<p align="center">
<img src="image/demo.gif" alt="动图演示" width="95%">
</p>

<h3><p align="center">一键中间人流量分析</p></h3>

支持常规以及国际APP流量分析,DNS流量分析,得益于 [mitmproxy flow hook](https://docs.mitmproxy.org/stable/api/events.html),你可以对任何请求做到最大限度的掌控,mitmproxy 功能足够丰富,你可以使用 Python 脚本实时修改或者捕获应用的请求,也可以通过其 `Export` 选项导出特定请求的 `curl` 命令或者 `HTTPie` 命令,分析重放、拦截修改、功能组合足以替代你用过的任何此类商业/非商业软件。如果你仍不清楚 mitmproxy 是什么以及其具有的能力,请务必先查找相关文档,因为 LAMDA 将会使用 mitmproxy 为你展现应用请求。

![中间人流量分析动图演示](image/mitm.gif)
<p align="center">
<img src="image/mitm.gif" alt="动图演示" width="95%">
</p>

<p align="center">
当然,LAMDA 提供的能力不止于这些,由于篇幅较长将不在此罗列,他是你强有力的设备控制及管理工具,如果你感兴趣,请转到 使用文档。
Expand Down
Binary file added image/api.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/detail.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added image/totalview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion lamda/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
#
# Distributed under MIT license.
# See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
__version__ = "7.67"
__version__ = "7.68"
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
description = "Android reverse engineering & automation framework",
url = "https://github.com/rev1si0n/lamda",
author = "rev1si0n",
python_requires = ">=3.6,<3.12",
python_requires = ">=3.6,<=3.12",
zip_safe = False,
extras_require = {
"full": ["frida>=16.0.0,<17.0.0"],
Expand Down
44 changes: 44 additions & 0 deletions tools/objection-1.11.0-command-patch.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
diff --git a/console/cli.py b/console/cli.py
index 1fc22fb..80e52dc 100644
--- a/console/cli.py
+++ b/console/cli.py
@@ -31,8 +31,10 @@ from ..utils.helpers import normalize_gadget_name, print_frida_connection_help,
@click.option('--serial', '-S', required=False, default=None, help='A device serial to connect to.')
@click.option('--debug', '-d', required=False, default=False, is_flag=True,
help='Enable debug mode with verbose output. (Includes agent source map in stack traces)')
+@click.option('--certificate', '-c', required=False, default=None, help="Frida connection certificate")
+@click.option('--token', '-t', required=False, default=None, help="Frida connection token")
def cli(network: bool, host: str, port: int, api_host: str, api_port: int,
- gadget: str, serial: str, debug: bool) -> None:
+ gadget: str, serial: str, debug: bool, certificate: str, token: str) -> None:
"""
\b
_ _ _ _
@@ -56,6 +58,8 @@ def cli(network: bool, host: str, port: int, api_host: str, api_port: int,
state_connection.use_network()
state_connection.host = host
state_connection.port = port
+ state_connection.certificate = certificate
+ state_connection.token = token

if serial:
state_connection.device_serial = serial
diff --git a/utils/agent.py b/utils/agent.py
index 6d88e3a..fbe9b40 100644
--- a/utils/agent.py
+++ b/utils/agent.py
@@ -126,8 +126,13 @@ class Agent(object):
return device

if state_connection.get_comms_type() == state_connection.TYPE_REMOTE:
+ kwargs = {}
+ if state_connection.certificate:
+ kwargs["certificate"] = state_connection.certificate
+ if state_connection.token:
+ kwargs["token"] = state_connection.token
device = frida.get_device_manager().add_remote_device('{host}:{port}'.format(
- host=state_connection.host, port=state_connection.port))
+ host=state_connection.host, port=state_connection.port), **kwargs)
click.secho('Using networked device @`{n}`'.format(n=device.name), bold=True)

return device

0 comments on commit 2f315bf

Please sign in to comment.