zoukankan      html  css  js  c++  java
  • Object c 汇编debug(转)

    有时间看看object c 的汇编,先转一个,有时间了再学习。

    One of the reasons I have not been posting as regularly is because of a big project I am currently working on. I have delved into the world of Objective-C, and have been enjoying it a ton. One of the pleasant surprises I found was the XCode utilizes GCC and GDB to do its compilation and debugging. Although they provide a nice GUI to interact with the debugger (create breakpoints, etc), it still will give you the normal ASM dump on errors. I imagine many developers out there just glaze over when they see this, but I got very excited! After doing some research and reading, I found some very useful Phrack articles to help me with my debugging.

    If you are brand new to ASM I would recommend you go over to SecurityTube and check out their ASM primer. For those who know some ASM, you should be able to understand mostly.

    Useful Commands

    Identify Selector

    When a message fails it is important to know which exactly selector threw the error. That selector can be found referenced within $ecx. The following is the command to display the value of $ecx, as well as a GDB command to display every call and selector made:

    Single Command:
    x/s $ecx


    Script:
    break
    commands
    x/s $ecx
    c
    end

    The script works by creating designating a command to print out the value of $ecx as a string, then continue the process. See the above Phrack article for more details.

    Identify Class Name

    When an object is going to execute a method the method pointer is loaded into $ecx (as seen above) and the pointer to the id/object is loaded into $eax.The class name can be found within a struct that exists within each object. It exists as a pointer (4-bytes) 8-bytes into the struct. We can access it in two ways:

    printf:
    printf "%s\n", *(long*)($eax+8)


    call getName method:
    call (char *)class_getName($eax)

    That is just the basics, but I hope you will find it helpful.

  • 相关阅读:
    [RN] React Native 使用 react-native-camera 过程中报错 Found react-native-camera 'mlkit' but wasn't required.`
    [RN] React Native 拍照、从相册选择、录像的实现
    10月14日站立会议
    第四周PSP &进度条
    课堂站立会议学习
    10月13号站立会议
    10月12号站立会议
    10月11号站立会议
    10月10号站立会议
    10月9号站立会议
  • 原文地址:https://www.cnblogs.com/likwo/p/2312491.html
Copyright © 2011-2022 走看看