Ios 工程模式下相关其他参数的获取

ios拨号状态输入*3001#12345#*进行工程模式,可以查看到好多基站参数,前段时间研究了一下,通过私有API获取的参数也好有限,现在想是否可以通过逆向方式hook到显示的这些参数值,请指点!

这个应该就是/Applications/FieldTest.app的功能,你直接从这个App入手分析就好了

相关思路如下:
1.通过逆向分析相关UI控件元素的详细情况
2.导出相关头文件分析定位相关调用的方法
3.通过hook去截取相关调用的方法

是不是这样?可行得通吗?

  1. 正确,用Reveal或者Cycript + recursiveDescription都行;
  2. 正确,需要用到class-dump和IDA,有可能还需要LLDB;
  3. 不一定要hook,你只要逆向出这些私有的接口就可以直接调用了

问题一:
在IDA上点击imports在name一列中定义前面有两个小划线是不是函数地址?
定义前面只有一个小划线的是不是结构变量?具体请见附件图片。

问题二:
如果我想在cycript中去测试接中GSMServingCell中的方法getSectionName,按群主论坛里的贴子应该要获取到接口GSMServingCell的地址,然后执行如下操作:
Cycript# controllern= #地址
Cycript# [controller getSectionName ]
是不是这样?如果是,那GSMServingCell地址从哪里获取?如果不是请指教谢谢!

具体请见附件图片。

问题1:
Imports是所有的导入符号,也就是外部的符号,包括函数名以及各种枚举类型,跟下划线没关系;

问题2:
GSMServingCell的地址需要你自己根据线索获取,例如:先通过单例获取某个ViewController,再获取其中的UITableViewController,再获取其中的GSMServingCell。没有你想的那么简单,熟悉之后也没那么难

问题三:请见附件
问题四:请见附件
问题五:
逆向工程这本书上,群主在分析IOS电话操作的时候,在cycript上执行测试如下一段代码,
Cycript –p MobilePhone
[UIApp _performDialofNumber:@”1011”withcall:nil]
问题是为什么执行如上代码就可以直接调用,UIApp是指?

问题3:
如果你能拿到这个类的实例,则可以执行其实例方法;否则只能执行其类方法

问题4:
这种外部引用的常量,如果是私有的,Cycript好像是无法识别的,你要传它具体的值进去

问题5:
在Cycript中,UIApp是[UIApplication sharedApplication]的缩写,之所以书上可以这么写,是因为UIAppliction下有_performDialOfNumber:这个实例函数

感谢群主的热心答复,还有一些疑问:
问题三:如何拿到这个类的实例,可否介绍一下?可否举个例子?

问题四:要传具体的值你说的这个值是地址?还是?可否举个例子?

问题三:
你看看我的这个帖子,从“这个“18岁的光亮sophisticated”看起来是个僵尸号,”开始,看看我是怎么由Cycript的输出得到WBUserScreenNameLabel的实例,又是怎么进一步获取到WBRepostListViewController的实例的。这里需要结合一定的逆向工程知识,即通过class-dump和IDA来找到2个类之间的关系;

问题四:
我的意思是说,Cycript在不import这个符号所在二进制文件的情况下,不一定能识别出NSASCIIStringEncoding这个符号,但因为NSASCIIStringEncoding是1,所以你传它的真实值,也就是1进去,就可以了(但是写代码时可以从外部binary中import,所以有符号就可以了)。至于这些符号的真实值是多少,就需要逆向工程了。

好几年过去了…
楼主后来找到办法了吗?