OS逆向之二--逆向技术基本操作(未完成)
2017-08-25 16:40
127 查看
参考这边文章一步步操作:
http://dev.qq.com/topic/577e0acc896e9ebb6865f321
1. 首先通过pp助手,将dumpdecrypted.dylib放到微信的Documents目录中。
2. 进入微信安装目录,用dumpdecrypted.dylib进行砸壳
find / -name “WeChat”
进入这个目录后执行:
DYLD_INSERT_LIBRARIES=./Documents/dumpdecrypted.dylib ./WeChat.app/WeChat
在tmp目录找到砸壳后的文件:WeChat.decrypted
疑问1:dumpdecrypted.dylib能否在越狱手机上进行砸壳的原理是什么?
找到微信对应的进程ID
ps aux | grep WeChat
疑问2:当微信没有进行时,该进程ID指得是什么?
打开微信,动态调试微信程序。
结果:
3.从中间的UIViewControllerWrapperView一步步往上推,
可以看到,这里并没有笔者所说的BaseMsgContentViewController类。
通过class-dump命令找到微信所有的头文件:
class-dump –arch armv7 -S -s -H WeChat.decrypted -o ./
在结果中确实可以找到BaseMsgContentViewController.h。
用Logify(通过名字可以猜测其作用是打印日志)为.h文件中的函数增加代码,以打印输入参数和输出参数:
logify.pl ./Headers/BaseMsgContentViewController.h > Tweak.xm
vi ~/.bash_profile
在最后增加这两行:
export THEOS=/opt/theos
export PATH=”/opt/theos/bin:$PATH”
修改Makefile为“
执行make package install 时报错:
暂时未能解决Tweak.xm中的编译问题。先跳过吧。
http://dev.qq.com/topic/577e0acc896e9ebb6865f321
砸壳
目的:只有砸壳应用才能class-dump出头文件。1. 首先通过pp助手,将dumpdecrypted.dylib放到微信的Documents目录中。
2. 进入微信安装目录,用dumpdecrypted.dylib进行砸壳
find / -name “WeChat”
进入这个目录后执行:
DYLD_INSERT_LIBRARIES=./Documents/dumpdecrypted.dylib ./WeChat.app/WeChat
在tmp目录找到砸壳后的文件:WeChat.decrypted
疑问1:dumpdecrypted.dylib能否在越狱手机上进行砸壳的原理是什么?
动态分析-cycript
目的:找到微信的消息处理入口。找到微信对应的进程ID
ps aux | grep WeChat
疑问2:当微信没有进行时,该进程ID指得是什么?
打开微信,动态调试微信程序。
结果:
3.从中间的UIViewControllerWrapperView一步步往上推,
可以看到,这里并没有笔者所说的BaseMsgContentViewController类。
通过class-dump命令找到微信所有的头文件:
class-dump –arch armv7 -S -s -H WeChat.decrypted -o ./
在结果中确实可以找到BaseMsgContentViewController.h。
用Logify(通过名字可以猜测其作用是打印日志)为.h文件中的函数增加代码,以打印输入参数和输出参数:
logify.pl ./Headers/BaseMsgContentViewController.h > Tweak.xm
theos创建tweak
通过nic.pl创建tweak,可以先修改环境变量:vi ~/.bash_profile
在最后增加这两行:
export THEOS=/opt/theos
export PATH=”/opt/theos/bin:$PATH”
修改Makefile为“
执行make package install 时报错:
暂时未能解决Tweak.xm中的编译问题。先跳过吧。
动态分析-lldb
将手机连接xcode,执行命令debugserver *:19999 -a WeChat,输出错误:adminde-iPhone:~ root# /Developer/usr/bin/debugserver *:19999 -a "WeChat" debugserver-310.2 for armv7. Attaching to process WeChat... error: failed to attach to process named: "" unable to start the exception thread Exiting.
相关文章推荐
- 程序逆向技术之二变量和常量
- JDBC对数据表的基本操作(JDBC之二)
- IBM大型主机(Mainframe)技术简介之二——基本的系统支持
- VTK修炼之道56:图形基本操作进阶_表面重建技术(三维点云曲面重建)
- VTK修炼之道58:图形基本操作进阶_点云配准技术(迭代最近点ICP算法)
- Redis-基本操作管道技术优化性能
- File文件基本操作之二:java 替换指定文件中的指定内容
- VTK修炼之道57:图形基本操作进阶_点云配准技术(LandMark标记点算法和坐标系显示方法)
- docker技术学习-安装和入门基本操作
- Android技术——后台操作(一):Service基本概念
- Java核心技术及面试指南面试题,基本数据类型、封装类和运算操作的面试题
- MongoDB技术之旅-MongoDB基本操作
- 在java实现redis缓存技术的基本操作
- Quartz2D技术基本的操作
- Memcache技术初步认识和基本的CRUD操作
- 【学习笔记】GDAL对图像的基本操作(未完成)
- Oracle10g技术问题总结(四)SQL的基本操作、脚本文件操作、数据的自动化导出
- VTK修炼之道49:图形基本操作进阶_网格平滑(点云的曲面重建技术)
- 【mysql基础系列之二】基本操作
- 北电ERS1600,8300,8600交换机的基本技术- 第三章: 接口操作