自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 关于saas 出海(TikTok数据工具)你怎么看?

本人是一个程序员,现在技术的角度来说说自己对出海的理解。首先,从智能机的普及,到app的增量开发,这期间各平台想方设法获取用户,到如今,只剩下大厂在存量中竞争。说明中国互联网的鼎盛时期已经过去了。企业要增长,资本要扩张,这个时候出海是一个不错的选择。比如最近海外的TikTok很火,对于中国的出海电商来说,绝对是千载难逢的机会,并且也涌现出一些数据分析平台,辅助商家快速变现的平台,比如FastData,tichoo等,特别说一下FastData的商品数据,商品全,数据更新也及时。最后,企业出海是为了生存

2023-03-07 23:58:08 393 2

原创 【面试题】基础篇02

1.事件传递流程1.用户触摸屏幕,系统将事件加入到UIApplication管理的一个任务队列中2.UIApplication将处于任务队列最前端的事件向下分发到UIWindow3.UIWIndow将事件向下分发到UIView4.UIView先看自己是否能处理事件,如果他的触摸范围内,就继续寻找subView5.遍历子控件,看某个subView能处理事件6.如果都没有找到,那就是UIView来处理7.如果UIView也处理不了,就不做任何处理- (UIView *)hitTest:(CGPo

2021-01-07 10:26:51 152

原创 【面试题】基础篇01

1.atomatic nonatomic区别和理解他们都是用来修饰属性的,区别是在编译时,编译器生成的getter和setter一个是原子操作,一个是非原子操作。atomatic 提供多线程安全,耗性能nonatomatic 在无需考虑不多线程的情况,使用这个,这样会让编译器少生成一些互斥锁代码,提高效率。2.比较关键词 strong,weak,assign,copystrong : 表示指向并拥有该对象。其修饰的对象引用计数会增加1。该对象只要引用计数不为0就不会别销毁。we

2021-01-06 10:31:15 172 1

原创 【AVFoundation学习】02-AVAudioRecorder使用

前言本系列文章属于个人学习AVFoundation笔记,本节属于AVAudioRecorder的使用,使用AVAudioRecorder录音。创建AudioRecorder // 3. 根据路径以及设置项, 创建录音对象 self.audioRecorder = [[AVAudioRecorder alloc] initWithURL:[NSURL URLWithString:self.recordPath] settings:self.recordSettingDic error:ni

2020-12-24 18:36:57 399 1

原创 【AVFoundation学习】01-AVAudioPlayer使用

前言本系列文章属于个人学习AVFoundation笔记,本节属于AVAudioPlayer的使用,使用AVAudioPlayer播放本地音频文件创建音频播放器- (AVAudioPlayer *)playerForFile:(NSString *)name { NSURL *fileURL = [[NSBundle mainBundle] URLForResource:name withExtensio

2020-12-24 18:30:08 652 1

原创 【ios逆向】注入和hook

1.注入动态库应用场景:我们在分析竞品的时候,希望自己写的代码也能在程序中运行,这个时候,把咱的代码打包成动态库,然后注入在竞品中。1.1.注入动态库有三种方式:1.将制作好的动态库上传到Dynamic Libraries目录;2.使用DYLD_INSERT_LIBRARIES环境变量;3.为Mach-O文件插入Load Command(加载命令),加载动态库;1.2.上传自己的动态库到Dynamic Libraries目录/Library/MobileSubstrate/Dynami

2020-12-02 15:27:02 594

原创 【iOS逆向】在OC项目中使用汇编函数

前言在开发或研发的时候,有两种场景可能需要在OC中使用汇编函数:1.正向开发时你想把部分关键逻辑隐藏。2.逆向分析时你想直接使用别人的加密方法。1.在OC中使用汇编函数1.1.创建汇编文件.text.align 4.globl _funcAdd_arm_funcAdd_arm: add w0,w0,w1 add w0,w0,w2 add w0,w0,w3 add w0,w0,w4 add w0,w0,w5 ret说明:函数的功能就

2020-12-01 10:40:46 432

原创 【Python篇】自动化处理数据流程

前沿能够流程化的业务尽量自动化。提高效率,最大程度的商业化才是首要。本人的业务逻辑是这样:第一步:首先抓包,获取需要的接口;第二步:开启爬虫,保存爬取的资源;第三步:根据本地的资源,生成json,入库;第四步:把本地资源上传S3;第五步:通过服务端API请求数据。流程图:本篇文章主要介绍第二步,第三步,第四步第二步:对文件重命名&生成jsonrename_json.py批量修改文件名生成json第三步:连接数据库&建表&入库j

2020-11-29 14:39:44 1028

原创 【Python篇】Beautiful Soup 初探

前沿网络爬虫分为API接口爬取和web爬取,一般的流程是先将需要的字段读取出来,形成一个目标json文件,最后通过scrapy设置Item,pipline,将资源文件保存下来。1.beautiful soup是什么?beautiful soup是一个可以从HTML或XML中提取标签数据的Python库。在网页爬取的时候,第一种方式,将html或xml转为json操作,第二种方式,直接去读取标签内容,这个时候就需要beautiful soup。2.如何使用2.1 引入库from bs4

2020-11-29 14:39:33 452

原创 【Python篇】scrapy爬虫

前言Scrapy是一个为了爬取网站或API数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。该文章是通过scrapy爬取https://www.yelp.com/关于[Restaurants]模块每个餐馆的菜单图片」1、工具安装1.1 安装Python环境Mac一般自带 Python 2.7,不用额外安装1.2 安装pipsudo install pip1.3 安装pycharmhttps://www.jetbrain

2020-11-29 14:39:21 258 1

原创 【IM-04】iOS端单聊&群聊

前沿本章主要介绍如何在iOS端实现单聊和群聊,服务端是本地搭建,数据库使用mysql。第一篇:即时通信解决方案第二篇:推送解决方案第三篇:Web端匿名聊天第四篇:iOS集成单聊&群聊1.app演示才知道简书不支持video2.单聊实现工程2.1.登录 [[SocketIOManager sharedInstance] emitOrder:@"login" with:@{@"userID":self.userField.text,@"type":@"ch

2020-11-29 14:38:40 371 8

原创 【IM-03】Web端匿名聊天

前沿Web端主要是集成SocketIO,然后部署到服务器的一个过程,入门的一个渠道。第一篇:即时通信解决方案第二篇:推送解决方案第三篇:Web端匿名聊天第四篇:iOS集成单聊&群聊1.Web端匿名聊天主要是功能展示进入聊天室聊天室2.体验专区http://im.meetyy.cn/不管大佬们关不关注公众号,我都会放上本章的Demo...

2020-11-28 17:40:46 3219

原创 【IM-02】apns服务的实现

前沿市面上的推送有很多:极光推送,个推,这是我用过的两款产品,在推送领域都有特点,现在自己开发了一款推送产品MagotanPush,服务端用Node.js语言,移动端用OC,目前是一个初品,也可以商用哈。第一篇:即时通信解决方案第二篇:推送解决方案第三篇:Web端匿名聊天第四篇:iOS集成单聊&群聊1.推送实现流程说明:第一步:App注册通知,获得DeviceToken,上报apns服务第二步:App注册通知,获取到DeviceToken,上报自己服务器,作为用户标识

2020-11-28 17:40:35 346

原创 【IM-01】即时通信解决方案

前沿市面上的IM产品很多,也很成熟。比如:环信,容联云,网易云信。如果你的产品做的很大的时候,你是否考虑过将即时通信的服务在自己服务端集成,毕竟集成第三方不安全,不稳定,也成就不了自己的核心竞争力。这是本人在分析竟品H的时候,对IM的一些理解,这是第一篇,应该会出四篇文章:第一篇:即时通信解决方案第二篇:推送解决方案第三篇:Web端匿名聊天第四篇:iOS集成单聊&群聊1.方案图谱2.图谱解释apns服务:服务端通过node.js实现,直接与苹果的apns服务对接(g

2020-11-28 17:40:24 429

原创 【iOS篇】在iPhone上安装描述文件

前沿iPhone上边可以通过多种方式安装应用:App Store下载,企业安装,通过描述文件安装。今天讨论的是第三种,通过描述文件安装。1.描述文件是什么?1.1 iPhone描述文件是由iPhone配置实用工具生成的批量手机配置文件,描述文件都有一定的时间,但过期时间对手机不会由任何影响。1.2 描述文件可以删除,即时删除对手机本身也无任何有害影响。不过,配置的某些功能可能会收到一定影响,例如配置APN(手机上网参数),如果过期,就必须手动配置。1.3 在设置-通用-描述文件 中找

2020-11-28 17:40:11 9979

原创 【iOS逆向】如何在低版本手机上安装高版本应用

前沿逆向开发中,可能会分析一些高版本的应用,但是设备的版本号低于应用最低版本号,这个时候就可以看这篇文章了。方法1:1.越狱设备安装蚂蚁源(https://apt.cydia.love/)2.搜索LowerInstall并安装3.查看安装效果4.直接去App Store下载高版本应用方法2:1.先在一台高版本设备上安装目标应用,然后删掉2.在低版本手机上登录该Apple ID,来到App Store 更新页面,找到目标应用点击更新即可下载到低版本手机上。...

2020-11-28 17:39:57 26264 4

原创 【iOS逆向】还原oc和block符号

1 下载竟品,脱壳,获取ipa2 创建空白文件夹A,把原二进制文件放进去3 下载python脚本,放入空白文件夹A4 将原二进制文件拖进ida解析说明:没有发现_block5 解析结束后,选择File -》 Script File,找到python 脚本,执行6 回到原目录查看新生成的ipa,解压,找到新二进制文件(比原来二进制文件大一些)7 拖进ida解析,找到需要的函数,在MonkeyDev中直接下断点查看打印结果...

2020-11-28 17:39:35 358

原创 【iOS逆向】如何验证签名

前沿当你爬取某app的数据,发现所有接口中都有一个动态改变的参数,那么这个参数应该就是签名参数,一般都是通过一些算法组装生成的1 连接越狱设备frida-ps -Ua2 找到目标进程com.Xtone.ExpressionKingdom3 IDA找到目标函数3.1 追踪tracefrida-trace -U 9124 -m "+[NSURL URLWithString:]"3.2 通过IDA找到目标函数,进行追踪frida-trace -U 9124 -m "-[XTBase

2020-11-28 17:39:21 492 1

原创 【iOS逆向】frida一键脱壳

前沿iOS砸壳方式很多:dumpdecrypted,Clutch,Frida,本篇介绍Frida。1 准备工作1.1 iOS端安装ssh安装Frida源添加源:https://build.frida.re下载对应Frida 32或者64位1.2 Mac 端1.2.1 安装homebrew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install

2020-11-28 17:39:09 1580

原创 【ios逆向】Reveal使用

1、Reveal简介Reveal是由ITTY BITTY出品的UI分析工具,可以直观的查看App的UI布局。分左右两个界面,左侧包含所有的类,右侧是对应的UI展示,当选中右侧的控件,Reveal也能解析出对应的UI控件类名。2、安装Reveal Loader2.1、在Cydia中搜索并安装Reveal Loader。说明:由于网络原因,这个操作可能失败,我操作的时候是失败了。接下来需要SSH访问手机,查看/Library/RHRevealLoader 是否存在,如果不存在,需要创建文件。(

2020-11-28 17:38:49 660 1

原创 【ios逆向】Theos使用

1、Theos简介Theos是一款越狱开发工具包,是ios逆向开发工具。2、Theos安装2.1、下载Theos,指定安装路径,官方建议放在/opt/目录下export THEOS=/opt/theos2.2、下载Theos到指定目录git clone --recursive https://github.com/theos/theos.git $THEOS2.3、配置IdidIdid是专门用来签名iOS可执行文件的工具,用以在越狱iOS中取代Xcode自带的codesi

2020-11-28 17:38:36 3126

原创 【ios逆向】class-dump使用

1、class-dump简介class-dump就是用来dump目标对象的class信息的工具。利用OC的runtime机制将存储在Mach-O 文件中的头文件信息提取出来,并生成对应的.h文件。2、class-dump安装下载地址:http://stevenygard.com/projects/class-dump将dmg文件中的class-dump复制到usr/bin目录,然后在终端执行sudo chmod 777 /usr/bin/class-dump,给予足够的权限。运行cl

2020-11-26 16:09:34 460

原创 【ios逆向】如何获取线上应用的头文件

你是否曾因为应用上线的第一天即遭破解而无奈苦恼,想要加强防范,却又束手无策吗?你是否曾为某一个应用深深折服,想要借鉴学习,却又无从下手吗?本篇讲解如何对线上ipa进行砸包获得头文件1、用越狱手机下载目标app(微信)2、通过SSH连接越狱手机(默认密码alpine)3、ps -e 查看所有进程4、找到目标进程,记录进程编号和所在位置/var/mobile/Containers/Bundle/Application/000C1B36-0A0D-4004-B0ED-66FE.

2020-11-26 16:08:57 707

原创 【ios逆向】如何获取线上app所有的图片资源

你是否曾被线上的某款应用的UI设计深深折服,心里有一种想要尝试开发类似应用的冲动,当开始着手时,发现应用的图片资源没有而苦恼呢?莫方,这篇告诉你怎么搞到所有的静态图片资源。1、首先,我们要知道app静态图片资源保存的位置,一般有三种存储方式-直接拖入项目-存放在Assets-存放bundle文件2、如何获取到这些图片2.1、在越狱设备中下载目标app,然后越狱设备链接PP助手,选择应用游戏-》XX的iPhone,找到目标app2.2、获取目标app的ipa包2.3、此时.

2020-11-26 16:07:04 786

原创 【iOS篇】使用科大讯飞SDK集成语音合成和识别

科大讯飞语音集成(语音识别和语音合成)讯飞开发步骤1.申请账号链接:http://member.xfyun.cn/index.php/default/register?referer=&visitor_from=YmFpZHU=2.参考文档链接:http://www.xfyun.cn/doccenter/iOS3.相关SDK下载链接:http://www.xfyun.cn/sdk/dispatcher4.集成步骤4.1、在创建应用的界面完成相关信息的填写,然后下载对应的SDK;

2020-11-26 16:04:27 1311

原创 【iOS篇】cocopods管理第三方

前言iOS 最新版 CocoaPods 的安装流程1.移除现有Ruby默认源$gem sources --remove https://rubygems.org/2.使用新的源$gem sources -a https://ruby.taobao.org/3.验证新源是否替换成功$gem sources -l4.安装CocoaPods(1) $sudo gem install cocoapods 备注:苹果系统升级 OS X EL Capitan 后改为 $sudo ge

2020-11-26 16:03:40 162

原创 【iOS篇】Runtime的应用

我们可以运用runtime机制做一些事情,动态的获取类的一些属性和方法,动态添加方法和方法交换。####1、获取类名动态获取类名,使用class_getName(Class)就可以在运行时来获取类的名称。class_getName()函数返回的是一个char类型的指针,也就是C语言的字符串类型,所以我们要将其转换成NSString类型,然后在返回出去。NSString *className = [GCRuntimeKit fetchClassName:[Test class]];NSLog(.

2020-11-26 16:01:53 160

原创 【iOS篇】使用websocket搭建本地服务器

####1、移动端何时需要搭建本地服务器?当移动端与web端需要很强很即时的数据交互时,服务端只需要一个结果的时候,在移动端搭建本地服务器,然后让移动端与web端交互,完成一系列动作,把结果告诉服务端,实际应用场景:积分墙。####2、如何在移动端搭建本地服务器?#pragma mark -- 开启本地服务-(void)openServer{ self.http = [[RoutingHTTPServer alloc] init]; // Set a default S

2020-11-26 16:01:03 1196

原创 【面试题】LLVM介绍

1.LLVM 介绍LLVM是模块化,可重用的编译器和工具链的集合2.LLVM架构3.LLVM与Clang关系LLVM的一个子项目,基于C/C++/Objective-C的前端4.LLVM操作查看编译的过程clang -ccc-print-phases main.m查看preprocessor(预处理)的结果clang -E main.m词法分析,生成Tokenclang -fmodules -E -Xclang -dump-tokens main.m语法分析,生成语法树(AST,

2020-11-26 15:50:35 950

原创 【面试题】Mach-O文件介绍

1.什么是Mach-O文件Mach-O文件是Mach object文件的缩写,他是MacOS,iOS等操作系统中的可执行文件。常见的格式:目标文件:.o库文件:.a/.dylib/.framework可执行文件动态链接器 dyld2.Mach-O文件的结构Mach—O文件包含三大部分:Header,LoadComands,Data。Header:保存了该文件的基本信息,如平台,文件类型,加载命令的个数loadCommands:根据这里的数据来确定内存的分布Da

2020-11-26 15:50:03 322

原创 【面试题】程序在启动之前都做了什么?

当我们在Xcode编写完成Code,comand+R,稍等一会,模拟器出现了页面,一次成功的App启动。这个过程中,都做了什么呢?第一阶段:预处理(Preprocessing),编译器(Compiler),汇编器(Assembler),生成Mach-O文件第二阶段:读取Mach-O文件,加载dylb(Linker),初始化Runtime(Loader)第三阶段:调用main函数第四阶段:首屏渲染第一阶段分析:(main函数前1)预处理他会处理程序中的宏定义,依赖关系,和预处理器指.

2020-11-26 15:45:41 220

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除