Skip to content

Commit

Permalink
7.55 auto-commit
Browse files Browse the repository at this point in the history
  • Loading branch information
rev1si0n committed Mar 23, 2024
1 parent 9f4d791 commit 71eb1ee
Show file tree
Hide file tree
Showing 8 changed files with 51 additions and 8 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
7.55
* 修复屏幕旋转显示不正常的问题
* 修复远程桌面初次连接断开的问题
* 修复元素存在判断
* 加入 Meta 按键定义
* 其他一些优化及问题修复

7.52
* 修复 magisk 版雷电兼容性
* 修复无法正常退出服务的问题
Expand Down
15 changes: 11 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<p align="center">
<img src="image/logo.svg" alt="LAMDA" width="365">
<img src="image/logo.svg" alt="LAMDA" width="345">
</p>

<p align="center">Android reverse engineering & automation framework, the super power.</p>
Expand All @@ -8,14 +8,19 @@
<img src="https://img.shields.io/badge/python-3.6+-blue.svg?logo=python&labelColor=yellow" />
<img src="https://img.shields.io/badge/android-6.0+-blue.svg?logo=android&labelColor=white" />
<img src="https://img.shields.io/badge/root%20require-red.svg?logo=android&labelColor=black" />
<img src="https://img.shields.io/github/downloads/rev1si0n/lamda/total" />
<img src="https://img.shields.io/github/v/release/rev1si0n/lamda" />
</p>

<p align="center"><a href="https://github.com/rev1si0n/lamda/wiki">使用文档</a> | <a href="https://t.me/lamda_dev">TELEGRAM</a> | <a href="https://lamda.run/join/qq">QQ 群组</a></p>
<br>
<p align="center"><a href="https://github.com/rev1si0n/lamda/wiki">使用文档</a> | <a href="https://t.me/lamda_dev">TELEGRAM</a> | <a href="https://lamda.run/join/qq">QQ 群组</a> | <a href="https://github.com/rev1si0n/lamda/blob/HEAD/CHANGELOG.txt">更新历史</a></p>

LAMDA 是一个用于逆向及自动化的辅助框架,设计为减少安全分析以及应用测试人员的时间及琐碎问题,以编程化的接口替代大量手动操作,它并不是一个单一功能的框架,他是 Appium、uiautomator 的超集同时具备逆向领域的能力。为了让你大概了解它的用处:你是否会在手机上安装各类代理、插件或者点来点去的设置来完成你的工作?你是否要在异地操作远在千里之外的手机?你是否有编程控制手机的需求?是否还在某些云手机厂商那里购买昂贵的**IP切换****远程ADB调试****RPA自动化**甚至连 **logcat 日志**都要付费的服务?如果有,那么对了,只需一个 LAMDA 即可解决这些问题。并且,LAMDA 更注重**分布式**,事实上,你可以在一台公网服务器上管理散布在世界各地各种网络环境中的设备。当然,LAMDA 可以做到的不止于此。

<p align="center">
<img src="image/wx.png" alt="公众号" width="234">
</p>
<p align="center"><small>关注公众号查看视频教程以及更多使用方法</small><br><small><b>知识应该是共享的,我们不会要求你为相关知识付费</b></small><br><small>文字版文档请查看<a href="https://github.com/rev1si0n/lamda/wiki">使用文档</a></small></p>

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

![动图演示](image/demo.gif)
Expand All @@ -26,4 +31,6 @@ LAMDA 是一个用于逆向及自动化的辅助框架,设计为减少安全

![中间人流量分析动图演示](image/mitm.gif)

当然,LAMDA 的能力不止于如上种种,他是你强有力的控制及管理工具,如果您感兴趣,请转到 [使用文档](https://github.com/rev1si0n/lamda/wiki)
<p align="center">
当然,LAMDA 提供的能力不止于这些,由于篇幅较长将不在此罗列,他是你强有力的设备控制及管理工具,如果你感兴趣,请转到 使用文档。
</p>
Binary file added image/wx.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.52"
__version__ = "7.55"
5 changes: 5 additions & 0 deletions lamda/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@
"Keys",
"KeyCode",
"KeyCodes",
"MetaKeyCode",
"MetaKeyCodes",
"BaseCryptor",
"FernetCryptor",
"OpenVPNAuth",
Expand Down Expand Up @@ -182,6 +184,9 @@ def corner(b, position):
KeyCode = protos.KeyCode
KeyCodes = protos.KeyCode # make an alias

MetaKeyCode = protos.MetaKeyCode
MetaKeyCodes = protos.MetaKeyCode # make an alias

OpenVPNAuth = protos.OpenVPNAuth
OpenVPNEncryption = protos.OpenVPNEncryption
OpenVPNKeyDirection = protos.OpenVPNKeyDirection
Expand Down
25 changes: 25 additions & 0 deletions lamda/rpc/uiautomator.proto
Original file line number Diff line number Diff line change
Expand Up @@ -336,6 +336,31 @@ enum KeyCode {
KEYCODE_PROFILE_SWITCH = 288;
}

enum MetaKeyCode {
META_UNKNOWN = 0;
META_SHIFT_ON = 1;
META_ALT_ON = 2;
META_SYM_ON = 4;
META_FUNCTION_ON = 8;
META_ALT_LEFT_ON = 16;
META_ALT_RIGHT_ON = 32;
META_ALT_MASK = 50;
META_SHIFT_LEFT_ON = 64;
META_SHIFT_RIGHT_ON = 128;
META_SHIFT_MASK = 193;
META_CTRL_ON = 4096;
META_CTRL_LEFT_ON = 8192;
META_CTRL_RIGHT_ON = 16384;
META_CTRL_MASK = 28672;
META_META_ON = 65536;
META_META_LEFT_ON = 131072;
META_META_RIGHT_ON = 262144;
META_META_MASK = 458752;
META_CAPS_LOCK_ON = 1048576;
META_NUM_LOCK_ON = 2097152;
META_SCROLL_LOCK_ON = 4194304;
}

enum Corner {
COR_CENTER = 0;
COR_BOTTOMRIGHT = 1;
Expand Down
2 changes: 1 addition & 1 deletion tools/cert.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
pk.generate_key(crypto.TYPE_RSA, 2048)

req = crypto.X509Req()
req.set_version(2)
req.set_version(0)
req.get_subject().CN = CN
req.set_pubkey(pk)
req.sign(pk, "sha256")
Expand Down
3 changes: 1 addition & 2 deletions tools/startmitm.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,7 @@ def _start(cls, bind, port, upstream, proxy=None):
loop = asyncio.new_event_loop()
factory = partial(cls, loop, upstream, proxy)
coro = loop.create_datagram_endpoint(factory,
local_addr=(bind, port),
reuse_port=True)
local_addr=(bind, port))
loop.run_until_complete(coro)
loop.run_forever()

Expand Down

0 comments on commit 71eb1ee

Please sign in to comment.