作者文章归档:alpface

flask web 模板中的url_for()


有多个路由的程序需要连接不同的网页链接,例如导航条

模板中构建正确的动态url较为困难,如果重定义路由,模板中的链接失效

url_for()函数:

使用url映射中保存的信息生成url

用法:

用视图函数名作为参数,返回对应的url

例如url_for(‘index’)得到的结果是”/”

utl_for(‘index’,external=True)

得到的是绝对地址 例如:http://localhost:5000

生成连接程序内放入不同路由的链接时,使用相对地址吗

使用url_for()生成动态地址:

动态部分作为参数传入

url_for(‘user’ name =’wang’,ext...

Read more

unning migrations: No migrations to apply.(Django 中修改表的问题)


django项目 修改了models.py某些表后,执行数据库迁移无效: unning migrations: No migrations to apply.

解决方法:
  • 删除migrations下的init.py
  • 进入数据库,找到django_migrations的表,删除该app名字的所有记录

    django_migrations表记录着数据库的对应表的修改记录。 每次修改后,都执行第三步的命令,然后在第一步的文件夹下生成修改的文件,django_migrations表记录修改的变更过程。

  • 重新生成迁移,并执行迁移:
    python manage.py makemigrations...

Read more

ubuntu python虚拟环境安装及使用


python虚拟环境好处

在开发中安装模块的方法:

pip install 模块名称

之前我们安装模块都是直接在物理环境下安装,这种安装方法,后面一次安装的会覆盖掉前面一次安装的。那如果一台机器上面开发多个项目使用到不同版本的模块呢?怎么样做才能不受版本影响!那么需要用到虚拟环境,每个虚拟环境互相隔离,在一个虚拟环境中安装卸载模块其他不受影响!

python虚拟环境的安装

  • 安装
    sudo apt-get install python-virtualenv
    sudo easy_install virtualenvwrapper
  • 配置虚拟环境

    配置虚拟环境的目的是可以直接在终端使用mkvir...

Read more

NSURLSessionConfiguration的discretionary属性


最近使用NSURLSession做下载时,配置了NSURLSessionConfiguration为backgroundSessionConfiguration, 在下载时发现拔下iPhone拔下电源后,点击下载无任何进度,连接电源后即可正常下载,最终发现是NSURLSessionConfiguration的discretionary设置为了YES导致; 此属性在官方API文档的定义为:

/* allows background tasks to be scheduled at the discretion of the system for optimal performance. *...

Read more

iOS 西瓜视频Tweak 实现最简单的百万英雄辅助


iOS 西瓜视频Tweak 实现最简单的百万英雄辅助

我的GitHub

百万英雄出题5-10秒就没了,太快了导致没时间思考就结束了,周六日在家用Tweak的方式研究下西瓜视频中百万英雄答题实现:

屏幕快照 2018-01-12 下午9.31.19.png

2018-01-15 23_25_24.gif

使用:

  • 点击英雄直播辅助时,iPhone上弹出一个webview;
  • 当显示问题时,在webview上根据钩子获取到的问题文本,在百度搜索答案;
  • 当显示问题时,此题目文本已被复制到iPhone剪切板,如果你的mac和iPhone用同一个账号,直接在浏览器粘贴进行搜索;

缺点:

由于手机屏幕小所以再弹出个页面体验不好, 有些问题可能搜不到结果: 当遇到那种根据下面选项为条件的题目时,就肯定搜...

Read more

iOS 在循环中使用计算属性导致内存暴涨


在OC的API中使用,readonly 和 copy声明,一般都是一个计算值,而在循环体中直接使用计算属性则会大量消耗内存,此时最好的解决办法是在获取某个计算属性使用autoreleasepool来降低内存峰值, 另外autorelease的值在循环中也会大量消耗内存,当然也可以使用autoreleasepool来降低内存峰值;

高内存

低内存 下面两个测试例子

低内存:

while (true) {
        NSString *a = [[NSString alloc] initWithFormat:@"test"];
    }

高内存:

while (true) {
        N...

Read more

非越狱theos的Tweak创建的dylib安装到iOS设备


非越狱环境下iOS版WeChat 逆向研究示例,dylibz(动态库)注入、应用重签名

基本原理

通过app启动时调用我们注入的dylib,进行app hook,最终能够执行我们注入的dylib。

应用砸壳

App store里的应用都是加密的,没办法直接拿来使用,所以在做之前都需要一个砸壳的过程,而砸壳使用的工具是dumpdecrypted, 原理就是让app预先加载一个dumpdecrypted.dylib,然后在程序运行时,将代码动态解密,最后在内存中dump出来整个程序。当然砸壳是需要在越狱环境下进行的,所以我直接从PP助手等各种xx助手里面下载越狱应用(不是正版应用),也就是所...

Read more

iOS逆向class-dump获取app头文件


class-dump

  • 简介: class-dump是用来dump目标文件的类信息的工具。它利用Objective-C语言的runtime的特性,将存储在mach-O文件中的@interface和@protocol信息提取出来,并生成对应的.h文件。官方介绍如下:

This is a command-line utility for examining the Objective-C runtime information stored in Mach-O files. It generates declarations for the classes, categories and ...

Read more

Ubuntu 16.04 mysqld.sock找不到导致无法连接mysql


问题: 当运行django项目时,报错无法连接到mysql:

pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1'([Errno 111] Conn

解决步骤: 1.尝试登录mysql, 执行mysql -uroot -p, 继续报错:

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
  1. 进入/var/run目录,发现mysqld目录不存在
  2. 百度搜索出现了各种答案,最...

Read more

Hopper Disassembler 反编译之导出伪代码


目的:使用Hopper Disassembler, 通过将汇编代码转成伪代码,了解其他App的实现, 以学习他人优秀的精髓之处;

已上传网盘: Hopper+4.0.8 网盘密码:zr4t Hopper Disassembler v3 网盘密码:hvxs

使用Hopper Disassembler

  • 下载完成打开它 屏幕快照 2018-01-17 上午12.25.29.png

  • 反编译示例: 光标移动到要反编译的汇编代码处: Snip20180117_3.png

查看伪代码:点击Hopper Disassembler的菜单-Window –Show Pseudo Code Of Procedure: 屏幕快照 2018-01-17 上午12.35.08.png

使用Python 脚本导出伪代码

只对Hopper Disassemble...

Read more