需求: IDA反编译的代码中有4处不理解,大部分是NSRange的问题,来请教下大佬。
- 为什么会有
0LL, 4LL, 0LL? NSRange不是应该就只是location和length吗? 
- 
v73应该是char *类型吧,怎么转成unsigned __int64和整数比较的? 
- 还是range不理解,
(char *)&v73->isa + 4 到底是什么鬼,怎么连isa指针都出现了 
- 
&v16[1], v72 这又是怎么组成range的。。 
代码: v12是NSData的实例
操作步骤: IDA + F5
             
            
              
              
              
            
           
          
            
            
              结合其他方式Hook推测了下,大差不差了
1应该就是NSMakeRange(0, 4),即取data的前4字节。至于为啥会显示0LL, 4LL, 0LL,不知道是不是IDA F5插件的bug
2和4属于我C语言彩笔了,取data的指定位置的4字节转无符号整型
3这个写法我还是无解
             
            
              
              
              
            
           
          
            
            
              第三个是取紧接着的后面4个吧,你最好是把汇编一块放上来
             
            
              
              
              1 个赞
            
           
          
            
            
              我主业开发iOS的,逆向新手,看汇编要了我的老命了 
             
            
              
              
              
            
           
          
            
            
              看不了你的图,不知道什么情况,手机打不开本网站,电脑打开看不了图片而且奇慢,科学上网也不行
             
            
              
              
              
            
           
          
            
            
              CDN出了点问题,正在排查修复呢;临时解决方案是在新窗口里打开图片,然后把图片URL里的cdn去掉,就可以看到图了
             
            
              
              
              1 个赞