美文网首页
致刚步入逆向找函数的未来大佬【2】

致刚步入逆向找函数的未来大佬【2】

作者: JoeTong | 来源:发表于2018-09-10 14:53 被阅读16次

1中讲了找函数的方法,最近又有了新的感悟方法。

比如,我想逆向抖音的 评论功能

还是利用ida,当我们将可执行文件放入ida解析完毕之后,就可以看到app中的几乎所有执行发放,但是由于量太大,我们需要先进行函数的定位。

我们可以用logfiy查看当评论的时候这个controller执行了什么方法,当然 在控制台会打印很多行方法,但是总会有一些可疑的方法出现 例如 - (void)sendCommentContent:(id)arg1 inputView:(id)arg2;。很显然 这就是评论的函数,但是,由于这个函数是在详情页面实现的,我想做到在首页刷新视频列表,然后给视频发评论,点进去再评论太繁琐,而且这里调用评论参数同样很多,那么,我想通过一行代码 例如【xxx sendMsgTo: content: complete:】这样的方法。

这样的话,我们就需要ida了,打开ida,用上方菜单中的search功能,输入sendCommentContent,然后control+t,寻找下一个,找到评论页面执行的这个方法,然后看看里面到底发生了什么,在里面看了一些service方法的实现,然后我仔细扫了一遍,发现在最后几行objc_msgSend(v156, "commentWithContent:replyId:extraInfo:completion:", v186, v157, v159, &v192);,【补充一下,OC函数实现的底层都是抖的objc_msgSend方法,方法名都是一个串,不像我们写的那样会有提示】很显然,这行代码是评论函数中再次调用的一个函数,那么我们复制这个函数再次用ida的search功能,原来这个函数是AWECommentListManager类中的一个对象方法,我们在看看这个对象方法中大概发生了什么

void __cdecl -[AWECommentListManager commentWithContent:replyId:extraInfo:completion:](AWECommentListManager *self, SEL a2, id a3, id a4, id a5, id a6)

{

v19 = objc_retain(v16, v18);

  +[AWEAwemeManager commentAwemeItemWithID:content:replyCommentID:extraInfo:completion:](

    &OBJC_CLASS___AWEAwemeManager,

    "commentAwemeItemWithID:content:replyCommentID:extraInfo:completion:",

里面又调用了AWEAwemeManager类中的commentAwemeItemWithID方法,很开心,感觉越来越接近最简单的方法了,用ida搜索commentAwemeItemWithID这个方法

在这个方法中,寥寥无几的几行代码,很开心 应该就是终极方法了,看了一下方法名果然和最初我想要的函数功能差不多【xxx sendMsgTo: content: complete:】给某个id发送某消息,最后有个block,我们用不着block回调 我们只需要自动发送评论。

最后整理一下就是

[%c(AWEAwemeManager) commentAwemeItemWithID:[dict objectForKey:@"group_id"] content:@"嗨,你好" replyCommentID:nil extraInfo:@[] completion:nil];

关于[dict objectForKey:@"group_id"] 中的dict哪来的,我们可以在刚才找这个方法的过程中看到这个dict的生成。

相关文章

网友评论

      本文标题:致刚步入逆向找函数的未来大佬【2】

      本文链接:https://www.haomeiwen.com/subject/ogdsgftx.html