前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >安装Termux的手机上运行Python

安装Termux的手机上运行Python

作者头像
JQ实验室
发布于 2022-02-09 09:46:15
发布于 2022-02-09 09:46:15
5.3K00
代码可运行
举报
文章被收录于专栏:实用技术实用技术
运行总次数:0
代码可运行

1. Termux 终端

Android是一个单用户图形化系统,功能主要以应用的形式呈现给用户,因此在系统上我们无法直接获取终端,更是无法直接调用系统自带的丰富指令。使用ADB是一个曲线救国的方法,打开USB调试后开发者可以在桌面系统的终端中触发Android系统自带指令,使用方法大概如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
adb shell env   # 查看Android的环境变量

这种方法需要一台电脑的配合,为了实现全天候、无差别的终端体验,你首先需要一个终端模拟器来保证随时随地地使用终端。

Android平台我们推荐Termux终端模拟器。

Termux

Termux终端有很多优秀的特性,这里要说两点:

  1. Termux有针对手机输入优化的键盘显示,长按KEYBOARD选项可打开该功能
  2. Termux维护着适合Android的库,并自带包管理器apt

因此,在Android上使用Termux终端和在Linux上使用终端一样方便。 安装完Termux后你有以下几个步骤需要完成:

  1. 到手机设置中开启 Termux 的存储权限,否则在Termux终端无法访问内部存储
  2. 修改Termux的源地址 (特别是国内用户

和Linux类似,Termux有自己的软件源,安装Termux后默认的软件源是Termux官网,即 http://termux.net,可打开源列表查看。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
### 如何查看
export EDITOR=vi
apt edit-sources 

源列表的一般格式为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# The main termux repository
deb [arch=all,你的平台架构] http://termux.net stable main

上面的指令中我们指定 vi 作为默认文本编辑器,vi指令是Termux自带的,你也可以指定其他文本编辑器,但需要先安装。默认的源服务器在国内是无法访问的,除非使用梯子,也就是说刚开始你可能只能使用vi编辑器,而且不能安装任何软件,毕竟 apt updage && apt upgrade都不能成功执行,换言之没有梯子默认情况下你无法获取资源列表。 国内用户建议使用清华维护的源服务器: http://mirrors.tuna.tsinghua.edu.cn/termux

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
## 国内用户建议使用的源列表内容
# The main termux repository
# deb [arch=all,你的平台架构] http://termux.net stable main
deb [arch=all,你的平台架构] http://mirrors.tuna.tsinghua.edu.cn/termux stable main

默认情况下内容是使用http协议传输的,我们可以为apt添加安全传输支持,这样就可以使用https安全传输协议。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apt install apt-transport-https

这时再次修改源服务器的传输协议为https并更新即可。 安装Termux后我们不仅可以在手机上使用/system/bin下的命令,还能下载新的指令使用。

2、Termux的安装Python

1. 更新包
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apt update
apt upgrade
2. 修改源
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export EDITOR=vi
apt edit-sources

在vi编辑器里把第二行替换成以下内容(清华镜像源)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
deb [arch=all,arm] http://mirrors.tuna.tsinghua.edu.cn/termux stable main

在vi编辑器里,输入第一个i进入编辑模式(插入),下面会给出提示“INSERT”,此时再打字就是在光标左边插入字符。等修改完毕后,按住音量,同时输入e,即可退出编辑模式。再输入:wq保存并退出vi。

3. Python环境部署

安装python2.7

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pkg install python2

安装完成后,使用python2命令启动python 2.7.14环境.

安装python3

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pkg instll python

安装完成后,使用python命令启动python 3.6.5环境.

升级pip版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python2 -m pip install --upgrade pip 
python -m pip install --upgrade pip

这两条命令分别升级了pip2pip3到最新版. pip版本查看

ipython

ipython是一个python的交互式shell,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数。学习ipython将会让我们以一种更高的效率来使用python。先安装clang,否则直接使用pip安装ipython会失败报错.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pkg install clang
pip install ipython
pip3.6 install ipython

然后分别使用ipythonipython2进入py2py3控制台:

编辑器

终端下有vim神器,并且官方也已经封装了vim-python,对vim进行了Python相关的优化.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pkg install vim-python

3、Termux的使用技巧

安装基本工具

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pkg update pkg install vim curl wget git unzip unrar 

启用外置存储

Android6.0以上会弹框确认是否授权,执行这条命令确保termux在最前端(当前Activity)

termux-setup-storage

成功拿到存储权限后会在家目录生成storage目录,并且生成若干目录,软连接都指向外置存储卡的相应目录

显示扩展功能按键

方法一

从左向右滑动,显示隐藏式导航栏,长按左下角的KEYBOARD.

方法二

使用Termux快捷键:音量++Q

常用快捷键

Ctrl键是终端用户常用的按键 – 但大多数触摸键盘都没有这个按键。为此,Termux使用音量减小按钮来模拟Ctrl键。 例如,在触摸键盘上按音量减小+ L发送与在硬件键盘上按Ctrl + L相同的输入。

  • Ctrl+A -> 将光标移动到行首
  • Ctrl+C -> 中止当前进程
  • Ctrl+D -> 注销终端会话
  • Ctrl+E -> 将光标移动到行尾
  • Ctrl+K -> 从光标删除到行尾
  • Ctrl+L -> 清除终端
  • Ctrl+Z -> 挂起(发送SIGTSTP到)当前进程

音量加键也可以作为产生特定输入的特殊键.

  • 音量加+E -> Esc键
  • 音量加+T -> Tab键
  • 音量加+1 -> F1(和音量增加+ 2→F2等)
  • 音量加+0 -> F10
  • 音量加+B -> Alt + B,使用readline时返回一个单词
  • 音量加+F -> Alt + F,使用readline时转发一个单词
  • 音量加+X -> Alt+X
  • 音量加+W -> 向上箭头键
  • 音量加+A -> 向左箭头键
  • 音量加+S -> 向下箭头键
  • 音量加+D -> 向右箭头键
  • 音量加+L -> | (管道字符)
  • 音量加+H -> 〜(波浪号字符)
  • 音量加+U -> _ (下划线字符)
  • 音量加+P -> 上一页
  • 音量加+N -> 下一页
  • 音量加+. -> Ctrl + \(SIGQUIT)
  • 音量加+V -> 显示音量控制
  • 音量加+Q -> 显示额外的按键视图

基本命令

Termux除了支持apt命令外,还在此基础上封装了pkg命令,pkg命令向下兼容apt命令.apt命令大家应该都比较熟悉了,这里直接简单的介绍下pkg命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pkg search <query> 搜索包
pkg install <package> 安装包
pkg uninstall <package> 卸载包
pkg reinstall <package> 重新安装包
pkg update                      更新源
pkg upgrade                     升级软件包
pkg list-all                    列出可供安装的所有包
pkg list-installed              列出已经安装的包
pkg shoe <package> 显示某个包的详细信息
pkg files <package> 显示某个包的相关文件夹路径 

目录环境结构

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
~ > echo $HOME /data/data/com.termux/files/home
 ~ > echo $PREFIX /data/data/com.termux/files/usr
 ~ > echo $TMPPREFIX /data/data/com.termux/files/usr/tmp/zsh 

Termux-api

Termux:API,用于访问手机硬件,实现更多的可玩性,可以实现如下等功能:

  • 访问电池信息
  • 获取相机设备信息
  • 获取本机设备信息
  • 获取设置剪贴板信息
  • 获取通讯录信息
  • 获取设置手机短信
  • 拨打号码
  • 振动设备

安装Termux-api

Termux-api Google Play下载地址

如何在电脑上下载Google play上的应用?

安装Termux-api软件包安装完Termux-apiAPP后,Termux里面必须安装对应的包后才可以实现操作手机底层.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pkg install termux-api

下面只列举一些可能会用到的,想要获取更多关于Termux-api的话,那就去参考官方文档.

获取电池信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
termux-battery-status

可以看到电池的-健康状况-电量百分比-温度情况等

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "health": "GOOD",
  "percentage": 67,
  "plugged": "UNPLUGGED",
  "status": "DISCHARGING",
  "temperature": 24.600000381469727
}

获取相机信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
termux-camera-info

获取与设置剪贴板

查看当前剪贴板内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
termux-clipboard-get

设置新的剪贴板内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
termux-clipboard-set 000

获取通讯录列表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
termux-contact-list

查看短信内容列表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
termux-sms-inbox

发送短信termux-sms-send

支持同时发送多个号码,实现群发的效果,官方介绍如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
termux-sms-send -n number(s)  recipient number(s) - separate multiple numbers by commas

发送测试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
termux-sms-send -n 10001 cxll

拨打电话

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
termux-telephony-call

拨打电话给10001中国电信,查看下话费有没有欠费~?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
termux-telephony-call 10001

WiFi相关

获取当前WiFi连接信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
termux-wifi-connectioninfo

获取最近一次WiFi扫描信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
termux-wifi-scaninfo

小结

直接操作调动系统底层的话,可以通过编程来实现自动定时短信发送,语音播报等 DIY空间无线

一些无聊的尝试

一些无聊有趣的版块,如果你是一个正经讲究人,可以跳过这个板块以节约你的阅读时间.

nyancat 彩虹猫

彩虹貓(英语:Nyan Cat)是在2011年4月上传在Youtube 的视频,并且迅速爆红于网络,並在2011年YouTube浏览量最高的视频中排名第五.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pkg install nyancat
nyancat

什么鬼~完全Get不到国外人的趣味点~

终端二维码

Linux 命令行下的二维码,主要核心是这个网址:http://qrenco.de/

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo "http://www.sqlsec.com" |curl -F-=\<- qrenco.de

如果你不嫌无聊的话还可以扫描这个二维码,然后就打开我的博客了.

终端地图

一个基于nodejs编写的命令行下的地图.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install mapscii -g
mapscii

进入终端地图

操作方法

  • 方向键 移动
  • az键 放大缩小
  • q键 退出

终端下的地图!讲究人~ 如果你足够无聊的话,还可以尝试能不能在这个地图上找到自己所在的位置.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from: http://www.52bug.cn/%E9%BB%91%E5%AE%A2%E6%8A%80%E6%9C%AF/4875.html
http://www.freebuf.com/geek/170510.html
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-10-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
PWN从入门到放弃(10)——栈溢出之ret2libc(x64)
我们看到,程序使用了gets函数和puts函数,根据我们之前讲过的ret2libc,攻击思路还是很清晰的
山深有杏
2024/01/30
2K0
PWN从入门到放弃(10)——栈溢出之ret2libc(x64)
PWN-BROP笔记
BROP是在没有给出题目文件的情况下,只能通过尝试来确定栈的大小,以及其他函数啥的地址
yichen
2020/03/06
9310
PWN ret2libc
ret2libc 应该是栈溢出里面的一个难点了,在这点上也卡了很久,现在做个学习记录
yulate
2023/05/02
6840
PWN ret2libc
BUUCTF-刷题记录
使用ida查看伪代码可以看到这个get_flag函数要求传入的两个参数必须为814536271和425138641即可直接读取flag
偏有宸机
2020/11/04
2.2K0
BUUCTF-刷题记录
[pwnable.tw] De-ASLR - "call reg"式ROP链+栈残留指针运用
题目只给了一个gets栈溢出,got开了全保护不能修改。按照题意对付aslr的话,爆破几率太渺茫了。应该要结合call reg以及栈残留指针来构造rop。
赤道企鹅
2022/08/01
5420
BUUCTF 刷题笔记——PWN 1
直接使用 nc 命令连接一下,当输入 ls 企图列目录时却返回了如下文字同时退出了。对于任意命令均如此,且返回文字的第二行就是我们输入的命令内容,这样一来就有趣了。
h-t-m
2023/03/15
2.4K0
BUUCTF 刷题笔记——PWN 1
ROP-Ret2libc详解
ret2libc 这种攻击方式主要是针对 动态链接(Dynamic linking) 编译的程序,因为正常情况下是无法在程序中找到像 system() 、execve() 这种系统级函数.
偏有宸机
2020/11/04
2K0
CTFShow萌新赛-WriteUp
程序有puts函数可以拿来泄露libc的基地址,然后只要利用ROPgadget找到程序中的pop rdi;ret代码段保持堆栈平衡使程序返回到主函数以继续运行,从而执行libc中的system函数即可。
偏有宸机
2020/11/04
1.2K0
CTFShow萌新赛-WriteUp
BUUCTF 刷题笔记——PWN 2
先验文件,本题文件为 32 为可执行文件,保护约等于没开。值得注意的是,该文件又是静态链接,因此又可以直接调用一些未被调用过的函数来解题,比如老朋友 mprotect() 函数。
h-t-m
2023/03/10
1.5K0
BUUCTF 刷题笔记——PWN 2
ctfshow-PWN刷题
​ 这个题目是今天刚做出来的,昨天刚学的libc,刚好刷到这道题目,可以看到这个题目中没有system和/bin/sh了,但是看到了puts,直接puts泄露libc地址,利用libc里的system和/bin/sh字符串来getshell.
ly0n
2020/11/04
1.5K0
Linux pwn入门学习到放弃
PWN是一个黑客语法的俚语词,自”own”这个字引申出来的,意为玩家在整个游戏对战中处在胜利的优势。本文记录菜鸟学习linux pwn入门的一些过程,详细介绍linux上的保护机制,分析一些常见漏洞如栈溢出,堆溢出,use after free等,以及一些常见工具介绍等。
FB客服
2020/09/22
4K0
Linux pwn入门学习到放弃
BUU PWN
通过字符串搜索看到了 cat /flag.txt的字符串,看到在main函数的上方有一个sub_40060D,发现cat falg.txt在这个函数中
ly0n
2020/11/04
9300
BUU PWN
PWNCTF部分复现
根据readData和writedata函数的逻辑发现数组是char [22][12],主要是判断越界的if语句有逻辑漏洞
安恒网络空间安全讲武堂
2018/12/18
9260
PWNCTF部分复现
PWN PWN PWN! - wuuconix's blog
作为一个半退役的CTF web选手,在大三上学习了编译原理和操作系统原理之后,感觉可以学习pwn了!下面写一下在buu和攻防世界上pwn专题的刷题记录。
wuuconix
2023/03/16
6640
PWN PWN PWN! - wuuconix's blog
高校战“疫”网络安全分享赛-部分PWN题-wp
周末打了下 《高校战“疫”网络安全分享赛》,作为WEB转PWN的菜鸟,只做出了三个PWN, 虽然被大佬们暴捶,但还是学到了几个操作,这里写一份WP,记录一下。
Gcow安全团队
2020/04/01
1.2K0
高校战“疫”网络安全分享赛-部分PWN题-wp
2022河南工控CTF
初赛成绩学生组第七,复赛成绩学生组第四(因为疫情复赛没有线下举办,挺可惜的,同时在比赛当天学校因疫情紧急封校,条件刻苦,大家一块努力打了一天,这个成绩是我们大家一块努力赢得的,尽管没有进总决赛,但是大家尽力了,下次继续加油!!!),放个复赛的成绩截图吧(这个截图是全排名)
故里[TRUE]
2023/04/20
3K0
2022河南工控CTF
从一道 CTF 题看 SROP | PWN
SROP 学习过程中,很大一部分人写的 smallest 这道题的 writeup 让我感觉很疑惑,为了证明他们写的存在一定问题,被迫走上了 pwntools + gdb 调试的路,所以这次只能用视频来进行展示了,文章剩余部分是讲义的内容 也不知道因为啥,磨磨唧唧唠了近两个小时,在视频中,大家可以 get 以下内容: SROP 原理及利用 一道 CTF 题的解题方法 pwntools + gdb 如何进行调试 SROP 整个过程中栈的内容是如何变化的 一些偏执... 视频已经上传到 B 站了 https:/
意大利的猫
2022/03/29
1.1K0
rop emporium challenges wp
这个的话没有/bin/cat flag.txt字符串了,那么这就需要我们写到内存了
用户1423082
2024/12/31
490
CTF PWN之堆漏洞转化为栈漏洞利用——bookstore
题目:https://github.com/giantbranch/CTF_PWN/tree/master/2018/tie3/bookstore
用户1423082
2024/12/31
890
CTF PWN之堆漏洞转化为栈漏洞利用——bookstore
ISCC2022
走私成功,但是显示本地才可以看到,那么添加一下secr3t_ip: 127.0.0.1
故里[TRUE]
2023/04/19
1.2K0
ISCC2022
相关推荐
PWN从入门到放弃(10)——栈溢出之ret2libc(x64)
更多 >
LV.1
这个人很懒,什么都没有留下~
目录
  • 1. Termux 终端
  • 2、Termux的安装Python
    • 1. 更新包
    • 2. 修改源
    • 3. Python环境部署
  • 安装python2.7
  • 安装python3
  • 升级pip版本
  • ipython
  • 编辑器
  • 3、Termux的使用技巧
  • 安装基本工具
    • 方法一
    • 方法二
  • 常用快捷键
  • 基本命令
  • 目录环境结构
  • Termux-api
    • 安装Termux-api
    • 安装Termux-api软件包安装完Termux-apiAPP后,Termux里面必须安装对应的包后才可以实现操作手机底层.
    • 获取电池信息
    • 获取相机信息
    • 获取与设置剪贴板
    • 获取通讯录列表
    • 查看短信内容列表
    • 发送短信termux-sms-send
    • 拨打电话
    • WiFi相关
    • 小结
  • 一些无聊的尝试
    • nyancat 彩虹猫
    • 终端二维码
    • 终端地图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档