Skip to content

huji0624/ioshack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ioshack

a program to modify momery value of an ios proccess.

Still working on.

The Log

先看了《Unix环境高级编程》,想尝试一下自己用c实现一个ios上的游戏修改器。2013-05-25

首先要尝试从另外一个进程中读取目标进程的数据,最开始看网上用得比较多的是ptrace,卡了很久,才恍然大悟,os x的man page上面根本没有对PT_READ_D做定义,所以总是在执行ptrace(PT_READ_D,pid,NULL,NULL)的时候返回-1,errno是22.其实是自己用错了.2013-05-27

在网上偶然发现在osx和ios上是才用vm_read的方式,apple针对这个有一个叫Kernel Programming Guide的文档,先研究一下。2013-05-29.

发现Kernel Programming Guide文档里面讲的东西都非常概念,实际意义不大,但是又是运气好,搜了很多,在搜索osx vm_read关键字的时候,搜到一篇叫Abusing Mach on Mac OS X的文章,里面比较实际地讲解了如何在OS X上做修改内存和代码注入,依法为之,在我的mac上修改一个已知地址的进程变量成功(必须使用root用户),接下来就是研究如何在指定进程中搜索指定变量的工作了。2013-06-01-11:51.

搜索变量,初步指定在由mach_vm_region_recurse获得的vmoffset地址和GetBSDProcessList获得的userstack地址之间,但发现有时候vmoffset的地址会偏到一个很诡异的地方,卡主了一段时间,偶然在网上搜到Max OS X intervals这本书,里面提到vmmap命令,针对a.out进程查看了一下,好多之前不懂的问题都恍然大悟了,因为vmmap中清楚地打印了各个内存的地址范围了和类型,可见,很多地址即使在vm地址空间中也都是不连续的,所以需要研究一下怎么利用一个类似链表的东西,把所有地址串起来搜索。2013-06-02-3:37.

在完成地址空间的全部检索之前,试了一下之前的程序编译到ios平台,并且实际运行了一下,发现某些在os x上很轻松实现的事情到ios平台又会发生别的变数。为了方便调试,我决定先完成命令行的交互代码,这样就不用在代码中写死很多东西,来回折腾上传二进制文件,可以一次性调试多个情况。为了方便可以在不同地方进行,在github建立了一个开源项目,方便代码同步,其中,命令行交互的c代码,使用了一个开源的小程序,叫mio。2013-06-04-22:45.

交互代码完成得还比较顺利,但是发现mio不支持命令行中传一个64位16进制的地址,这部分得自己写一个,到时候给他发个pull request试试。

继续研究如何能获取proccess的进程地址空间,终于有了新的进展。首先是发现了vm_region,mach_vm_region等一系列api的使用方法,自己尝试了一下,可以取得某几块内存空间,但还是得到得不全,不如使用vmmap所显示的地址空间那么完备,所以进一步去寻找网络上关于vmmap的实现,终于找到一个vmmap的实现,跑了下代码发现可以,但是自己按照那个方式修改自己的代码,还是得不到完整的地址空间,明天继续研究这个实现,应该就可以取得进程地址空间了。2013-06-14-23:55.

哈哈,又折腾了一天,终于在代码中实现了在进程的”所有内存空间“中搜索指定的整形值,目前看来,还是非常有效地,这里给所有内存空间加了一个引号,是因为目前我只测试了一个非常简单的c程序,他的进程空间比较简单,我还不确定在实际应用中,这方式是否有效,为了能在实际应用中也能搜到对应的值,目前需要做两件事情,一是调试搜索变化中的值,一是把程序编译为在ios上可运行地,再实际地尝试一下在ios上是否能像在os x上一样有效.2013-06-15-14:10.

About

a program to modify momery value of an ios proccess.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published