lamda 7.52__tar.gz → 7.57__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. {lamda-7.52 → lamda-7.57}/PKG-INFO +1 -1
  2. {lamda-7.52 → lamda-7.57}/README.md +11 -4
  3. {lamda-7.52 → lamda-7.57}/lamda/__init__.py +1 -1
  4. {lamda-7.52 → lamda-7.57}/lamda/client.py +25 -0
  5. {lamda-7.52 → lamda-7.57}/lamda/rpc/services.proto +1 -0
  6. {lamda-7.52 → lamda-7.57}/lamda/rpc/uiautomator.proto +42 -0
  7. {lamda-7.52 → lamda-7.57}/lamda.egg-info/PKG-INFO +1 -1
  8. {lamda-7.52 → lamda-7.57}/lamda/bcast.proto +0 -0
  9. {lamda-7.52 → lamda-7.57}/lamda/const.py +0 -0
  10. {lamda-7.52 → lamda-7.57}/lamda/exceptions.py +0 -0
  11. {lamda-7.52 → lamda-7.57}/lamda/google/protobuf/any.proto +0 -0
  12. {lamda-7.52 → lamda-7.57}/lamda/google/protobuf/api.proto +0 -0
  13. {lamda-7.52 → lamda-7.57}/lamda/google/protobuf/compiler/plugin.proto +0 -0
  14. {lamda-7.52 → lamda-7.57}/lamda/google/protobuf/descriptor.proto +0 -0
  15. {lamda-7.52 → lamda-7.57}/lamda/google/protobuf/duration.proto +0 -0
  16. {lamda-7.52 → lamda-7.57}/lamda/google/protobuf/empty.proto +0 -0
  17. {lamda-7.52 → lamda-7.57}/lamda/google/protobuf/field_mask.proto +0 -0
  18. {lamda-7.52 → lamda-7.57}/lamda/google/protobuf/source_context.proto +0 -0
  19. {lamda-7.52 → lamda-7.57}/lamda/google/protobuf/struct.proto +0 -0
  20. {lamda-7.52 → lamda-7.57}/lamda/google/protobuf/timestamp.proto +0 -0
  21. {lamda-7.52 → lamda-7.57}/lamda/google/protobuf/type.proto +0 -0
  22. {lamda-7.52 → lamda-7.57}/lamda/google/protobuf/wrappers.proto +0 -0
  23. {lamda-7.52 → lamda-7.57}/lamda/rpc/application.proto +0 -0
  24. {lamda-7.52 → lamda-7.57}/lamda/rpc/debug.proto +0 -0
  25. {lamda-7.52 → lamda-7.57}/lamda/rpc/file.proto +0 -0
  26. {lamda-7.52 → lamda-7.57}/lamda/rpc/policy.proto +0 -0
  27. {lamda-7.52 → lamda-7.57}/lamda/rpc/proxy.proto +0 -0
  28. {lamda-7.52 → lamda-7.57}/lamda/rpc/settings.proto +0 -0
  29. {lamda-7.52 → lamda-7.57}/lamda/rpc/shell.proto +0 -0
  30. {lamda-7.52 → lamda-7.57}/lamda/rpc/status.proto +0 -0
  31. {lamda-7.52 → lamda-7.57}/lamda/rpc/storage.proto +0 -0
  32. {lamda-7.52 → lamda-7.57}/lamda/rpc/types.proto +0 -0
  33. {lamda-7.52 → lamda-7.57}/lamda/rpc/util.proto +0 -0
  34. {lamda-7.52 → lamda-7.57}/lamda/rpc/wifi.proto +0 -0
  35. {lamda-7.52 → lamda-7.57}/lamda/types.py +0 -0
  36. {lamda-7.52 → lamda-7.57}/lamda.egg-info/SOURCES.txt +0 -0
  37. {lamda-7.52 → lamda-7.57}/lamda.egg-info/dependency_links.txt +0 -0
  38. {lamda-7.52 → lamda-7.57}/lamda.egg-info/not-zip-safe +0 -0
  39. {lamda-7.52 → lamda-7.57}/lamda.egg-info/requires.txt +0 -0
  40. {lamda-7.52 → lamda-7.57}/lamda.egg-info/top_level.txt +0 -0
  41. {lamda-7.52 → lamda-7.57}/setup.cfg +0 -0
  42. {lamda-7.52 → lamda-7.57}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamda
3
- Version: 7.52
3
+ Version: 7.57
4
4
  Summary: Android reverse engineering & automation framework
5
5
  Home-page: https://github.com/rev1si0n/lamda
6
6
  Author: rev1si0n
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="image/logo.svg" alt="LAMDA" width="365">
2
+ <img src="image/logo.svg" alt="LAMDA" width="345">
3
3
  </p>
4
4
 
5
5
  <p align="center">Android reverse engineering & automation framework, the super power.</p>
@@ -8,14 +8,19 @@
8
8
  <img src="https://img.shields.io/badge/python-3.6+-blue.svg?logo=python&labelColor=yellow" />
9
9
  <img src="https://img.shields.io/badge/android-6.0+-blue.svg?logo=android&labelColor=white" />
10
10
  <img src="https://img.shields.io/badge/root%20require-red.svg?logo=android&labelColor=black" />
11
+ <img src="https://img.shields.io/github/downloads/rev1si0n/lamda/total" />
11
12
  <img src="https://img.shields.io/github/v/release/rev1si0n/lamda" />
12
13
  </p>
13
14
 
14
- <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>
15
- <br>
15
+ <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>
16
16
 
17
17
  LAMDA 是一个用于逆向及自动化的辅助框架,设计为减少安全分析以及应用测试人员的时间及琐碎问题,以编程化的接口替代大量手动操作,它并不是一个单一功能的框架,他是 Appium、uiautomator 的超集同时具备逆向领域的能力。为了让你大概了解它的用处:你是否会在手机上安装各类代理、插件或者点来点去的设置来完成你的工作?你是否要在异地操作远在千里之外的手机?你是否有编程控制手机的需求?是否还在某些云手机厂商那里购买昂贵的**IP切换**、**远程ADB调试**、**RPA自动化**甚至连 **logcat 日志**都要付费的服务?如果有,那么对了,只需一个 LAMDA 即可解决这些问题。并且,LAMDA 更注重**分布式**,事实上,你可以在一台公网服务器上管理散布在世界各地各种网络环境中的设备。当然,LAMDA 可以做到的不止于此。
18
18
 
19
+ <p align="center">
20
+ <img src="image/wx.png" alt="公众号" width="234">
21
+ </p>
22
+ <p align="center"><small>关注公众号查看视频教程以及更多使用方法</small><br><small><b>知识应该是共享的,我们不会要求你为相关知识付费</b></small><br><small>文字版文档请查看<a href="https://github.com/rev1si0n/lamda/wiki">使用文档</a></small></p>
23
+
19
24
  经过超 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 设备。
20
25
 
21
26
  ![动图演示](image/demo.gif)
@@ -26,4 +31,6 @@ LAMDA 是一个用于逆向及自动化的辅助框架,设计为减少安全
26
31
 
27
32
  ![中间人流量分析动图演示](image/mitm.gif)
28
33
 
29
- 当然,LAMDA 的能力不止于如上种种,他是你强有力的控制及管理工具,如果您感兴趣,请转到 [使用文档](https://github.com/rev1si0n/lamda/wiki)。
34
+ <p align="center">
35
+ 当然,LAMDA 提供的能力不止于这些,由于篇幅较长将不在此罗列,他是你强有力的设备控制及管理工具,如果你感兴趣,请转到 使用文档。
36
+ </p>
@@ -2,4 +2,4 @@
2
2
  #
3
3
  # Distributed under MIT license.
4
4
  # See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
- __version__ = "7.52"
5
+ __version__ = "7.57"
@@ -67,6 +67,8 @@ __all__ = [
67
67
  "Keys",
68
68
  "KeyCode",
69
69
  "KeyCodes",
70
+ "MetaKeyCode",
71
+ "MetaKeyCodes",
70
72
  "BaseCryptor",
71
73
  "FernetCryptor",
72
74
  "OpenVPNAuth",
@@ -182,6 +184,9 @@ Keys = protos.Key # make an alias
182
184
  KeyCode = protos.KeyCode
183
185
  KeyCodes = protos.KeyCode # make an alias
184
186
 
187
+ MetaKeyCode = protos.MetaKeyCode
188
+ MetaKeyCodes = protos.MetaKeyCode # make an alias
189
+
185
190
  OpenVPNAuth = protos.OpenVPNAuth
186
191
  OpenVPNEncryption = protos.OpenVPNEncryption
187
192
  OpenVPNKeyDirection = protos.OpenVPNKeyDirection
@@ -237,6 +242,8 @@ TouchSequence.__iter__ = touchSequenceIter
237
242
  Bound.width = property(width)
238
243
  Bound.height = property(height)
239
244
 
245
+ FindImageMethod = protos.FindImageMethod
246
+
240
247
  Bound.center = center
241
248
  Bound.corner = corner
242
249
 
@@ -848,6 +855,19 @@ class UiAutomatorStub(BaseServiceStub):
848
855
  """
849
856
  r = self.stub.getClipboard(protos.Empty())
850
857
  return r.value
858
+ def find_similar_image(self, data, threshold=0,
859
+ max_distance=0, bound=None,
860
+ method=FindImageMethod.FI_TEMPLATE):
861
+ """
862
+ 根据提供的目标图片从屏幕中获取相似图片位置
863
+ """
864
+ req = protos.FindImageRequest(bound=bound)
865
+ req.method = method
866
+ req.max_distance = max_distance
867
+ req.threshold = threshold
868
+ req.partial = data
869
+ r = self.stub.findSimilarImage(req)
870
+ return r.bounds
851
871
  def freeze_rotation(self, freeze=True):
852
872
  """
853
873
  锁定屏幕旋转
@@ -2017,6 +2037,11 @@ class Device(object):
2017
2037
  return self.stub("UiAutomator").wait_for_idle(timeout)
2018
2038
  def get_last_toast(self):
2019
2039
  return self.stub("UiAutomator").get_last_toast()
2040
+ def find_similar_image(self, data, threshold=0,
2041
+ max_distance=0, bound=None,
2042
+ method=FindImageMethod.FI_TEMPLATE):
2043
+ return self.stub("UiAutomator").find_similar_image(data, threshold=threshold,
2044
+ max_distance=max_distance, bound=bound, method=method)
2020
2045
  # watcher
2021
2046
  def remove_all_watchers(self):
2022
2047
  return self.stub("UiAutomator").remove_all_watchers()
@@ -186,6 +186,7 @@ service UiAutomator {
186
186
  rpc registerClickUiObjectWatcher(WatcherRegistRequest) returns (Boolean) {}
187
187
  rpc registerPressKeysWatcher(WatcherRegistRequest) returns (Boolean) {}
188
188
  rpc registerNoneOpWatcher(WatcherRegistRequest) returns (Boolean) {}
189
+ rpc findSimilarImage(FindImageRequest) returns (FindImageResponse) {}
189
190
  }
190
191
 
191
192
  service Wifi {
@@ -336,6 +336,31 @@ enum KeyCode {
336
336
  KEYCODE_PROFILE_SWITCH = 288;
337
337
  }
338
338
 
339
+ enum MetaKeyCode {
340
+ META_UNKNOWN = 0;
341
+ META_SHIFT_ON = 1;
342
+ META_ALT_ON = 2;
343
+ META_SYM_ON = 4;
344
+ META_FUNCTION_ON = 8;
345
+ META_ALT_LEFT_ON = 16;
346
+ META_ALT_RIGHT_ON = 32;
347
+ META_ALT_MASK = 50;
348
+ META_SHIFT_LEFT_ON = 64;
349
+ META_SHIFT_RIGHT_ON = 128;
350
+ META_SHIFT_MASK = 193;
351
+ META_CTRL_ON = 4096;
352
+ META_CTRL_LEFT_ON = 8192;
353
+ META_CTRL_RIGHT_ON = 16384;
354
+ META_CTRL_MASK = 28672;
355
+ META_META_ON = 65536;
356
+ META_META_LEFT_ON = 131072;
357
+ META_META_RIGHT_ON = 262144;
358
+ META_META_MASK = 458752;
359
+ META_CAPS_LOCK_ON = 1048576;
360
+ META_NUM_LOCK_ON = 2097152;
361
+ META_SCROLL_LOCK_ON = 4194304;
362
+ }
363
+
339
364
  enum Corner {
340
365
  COR_CENTER = 0;
341
366
  COR_BOTTOMRIGHT = 1;
@@ -529,3 +554,20 @@ message WatcherRegistRequest {
529
554
  Key key = 4;
530
555
  }
531
556
  }
557
+
558
+ enum FindImageMethod {
559
+ FI_TEMPLATE = 0;
560
+ FI_FEATURE_POINT = 1;
561
+ }
562
+
563
+ message FindImageRequest {
564
+ FindImageMethod method = 1;
565
+ Bound bound = 2;
566
+ bytes partial = 3;
567
+ uint32 max_distance = 4;
568
+ float threshold = 5;
569
+ }
570
+
571
+ message FindImageResponse {
572
+ repeated Bound bounds = 1;
573
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamda
3
- Version: 7.52
3
+ Version: 7.57
4
4
  Summary: Android reverse engineering & automation framework
5
5
  Home-page: https://github.com/rev1si0n/lamda
6
6
  Author: rev1si0n
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes