3

Where is it that, when I am at a procedure with a lot of db, hopper will not show the control flow graph.

  1. How do I make the db change to a regular assembly symbol like mov,add,ret etc.
  2. What cause the db not to show the control flow graph

             aWindow_2f81:        // aWindow
00002f81         db         "window", 0                                         ; DATA XREF=0x3470
             aTuiwindown:
00002f88         db         "T@\"UIWindow\",&,N", 0
             aTuiwindownvwin:
00002f99         db         "T@\"UIWindow\",&,N,V_window", 0                    ; DATA XREF=0x3470
             aHelloWorld:
00002fb3         db         "Hello World!", 0                                   ; DATA XREF=cfstring_Hello_World_
             aLabel_2fc0:        // aLabel
00002fc0         db         "label", 0                                          ; DATA XREF=0x3540
             aTuilabelnvlabe:
00002fc6         db         "T@\"UILabel\",&,N,V_label", 0                      ; DATA XREF=0x3540
00002fde         db  0x00 ; '.'
00002fdf         db  0x00 ; '.'

This is the corresponding ViewController.m code


#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)buttonHello:(id)sender {
    
    _label.text = @"Hello World!";  
}
@end
2
  • 1
    What will cause hopper to show as db instrution?
    – A O
    Commented Mar 7, 2023 at 2:25
  • 1
    Db means define_byte it can be sequence of bytes or a string like shown in your query you cannot expect to disassemble a string if you think those strings are code then there should be an option to force those bytes as code. Be aware forcing a string to dissassemled as code will surely generate garbage
    – blabb
    Commented Mar 8, 2023 at 5:07

1 Answer 1

1

As @blabb mentioned, this is a series of null terminated strings, it isn't code. They may be in the code segment but that doesn't make them instructions, and telling Hopper to treat them as code will result in rubbish.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.