练手中碰到的小问题


#1

在看了书上第五章对SpringBoard注入之后,我就想着能不能对系统的照相机做一些修改,来进行拍照的一些调整,然后我class-dump出头文件+IDA分析之后发现:



他们都调用了同样的方法,为了找寻这个参数是什么,我编写了一个tweak:

%hook CAMApplication

- (void)_runTakeGenericPictureTest:(id)arg1 withHDREnabled:(_Bool)arg2{
  %orig;
  NSLog(@"CAMERA: the arg: %s, %@", object_getClassName(arg1), arg1);
}

但是在查看系统日志的时候并没有发现有打印(装过syslog了),不知道这是因为什么原因。在查看日志的时候显示我的dylib已经加载了啊
之后我用cycript测试如转换前后镜头的时候因为无参数可以成功,但是一会儿就转回去了,我猜想是不是系统的什么dylib在做拦截之类的?
感觉很迷,新手请求帮助


#2

你好 兄弟你又遇到 xxx.app(xxx是中文)ssh连接手机后中文显示不了 cd进入不了的问题吗


#3

你这个应该是因为编码的问题吧,看看当前的编码,用locale 命令


#4

嗯 我有看。但是手机上的编码 不知道怎么改
网上的不是手机的修改方式


#5

这种google 一下就好了,不然你用iFile之类的移出来改个名呗


#6

移动行吗。我要破壳,放dylib到doc里面在使用class-dump破壳路径要对呀,不然破不了


#7

你的app是执行文件路径,难道你的document 目录也是乱码吗,砸壳放到那个路径下是因为沙盒机制导致应用只对沙盒内目录有写权限,搞清楚这点不就好了


#8

是的 都是乱码
我看看吧两个都拿出来 指定路径看看


#9

方便留个联系方式?929691052我的qq 有东西聊聊


#10

而且你的目的是找到沙盒路径,用cycript 注入对应pid 就好,就算乱码也是找得到的,控制变量,移不移根本无所谓


#11

如果你的tweak写的没问题的话,你要确认一下,这个函数是否被调用了?可以用LLDB下个断点试试断得下来不


#12

航哥 中文乱码问题 我还是没找到处理方法 怎么处理好


#13

主要就是 使用dumpdecrypted的时候中文乱码没办法连接.app目录


#14

测试过了一下,应该是函数没有调用,dump出来的头文件和IDA中都看不出来还有什么别的方式,请问是因为什么别的原因吗,涉及到混淆反加密么?碰到这种情况的时候会有其他的思考方向呢?


#15

按照书上说的,从UI入手,去寻找UI下隐藏的函数


#16

哦哦,谢谢,还有一个小问题就是我看到之前论坛上有一个解决过的问题:


我也碰到了这个问题,正常情况下我可以注入进去,但是使用cycript的魔力方法的时候就会报和图中一样的错误:

function printMethods(className) {
  var count = new new Type("I");
  var methods = class_copyMethodList(objc_getClass(className), count);
  var methodsArray = [];
  for(var i = 0; i < *count; i++) {
    var method = methods[i];
    methodsArray.push({selector:method_getName(method), implementation:method_getImplementation(method)});
  }
  free(methods);
  free(count);
  return methodsArray;
}

昨天的时候通过这个打印方法还是正常的,我的手机版本是8.3,cycript版本是0.9.54,cycript重装过,还是可以进行普通的操作,但是printMethods(xx)就会报错,并且我测试过StoreApp和我自己写的,调用printMethods都会这样报错,在盘古的网站上也看到了这个问题:
image
也没有解决,难道只有刷机这条路走么?