2011-12-02 4 views
5

Tôi muốn biên dịch khuôn khổ iOS Twitter, nếu thực tế tôi lấy tệp twitterd từ trình mô phỏng xcode, được biên dịch sẵn để chạy trên x86 (?), Không phải ARM. Đối với công cụ tôi sử dụng http://code.google.com/p/i386codedump/ Hướng dẫn:Biên dịch khuôn khổ Obj C

Usage: code-dump [options] <mach-o-file> where options are: 
    -a    show instance variable offsets 
    -A    show implementation addresses 
    --arch <arch> choose a specific architecture from a universal binary (ppc, i386, etc.) 
    -C <regex>  only display classes matching regular expression 
    -H    generate header files in current directory, or directory specified with -o 
    -I    sort classes, categories, and protocols by inheritance (overrides -s) 
    -o <dir>  output directory used for -H 
    -r    recursively expand frameworks and fixed VM shared libraries 
    -s    sort classes and categories by name 
    -S    sort methods by name 
    -t    suppress header in output, for testing 
    -d    decompile 
    -D <arch>  decompilation architecture 

tôi kinda không hiểu những tùy chọn tôi cần phải thực hiện, đó là những gì tôi cố gắng:

iMac:documents $ ./code-dump -d twitterd 
2011-12-02 18:56:35.885 code-dump[1643:707] feedface, ao: 0 
2011-12-02 18:56:35.886 code-dump[1643:707] process: feedface (86000) 
/* 
*  Generated by code-dump 2.0. 
*/ 
This file does not contain any Objective-C runtime information. 
2011-12-02 18:56:35.888 code-dump[1643:707] Building lookup table... 
2011-12-02 18:56:40.308 code-dump[1643:707] Finished lookup table 
/usr/bin/lipo: input file (twitterd) must be a fat file when the -extract option is specified 
2011-12-02 18:56:40.868 code-dump[1643:707] CDAssemblyProcessor, 22288 instructions, 0 functions 
Segmentation fault: 11 

gì này có nghĩa là, những gì tôi cần làm? :)

+2

"Tôi muốn dịch ngược khung nền tảng iOS" => Có lẽ bạn nên hỏi về cách làm bất cứ điều gì bạn hy vọng sẽ làm với thông tin này, thay vì cố gắng dịch ngược một khung công tác ... –

Trả lời

4

Tệp này không chứa bất kỳ thông tin thời gian chạy Objective-C nào.

Điều này có nghĩa là tệp không xác định bất kỳ lớp, giao thức hoặc danh mục nào. Nó có thể sử dụng target-c, nhưng nó không chứa bất kỳ thông tin hữu ích nào về các lớp mà nó sử dụng.

CDAssemblyProcessor, 22.288 hướng dẫn, 0 chức năng

này chỉ ra rằng tập tin đã có những biểu tượng của nó tước. Nó chứa mã, nhưng không có dấu hiệu cho thấy bất kỳ hàm nào bắt đầu hoặc kết thúc, do đó nó không thể được giải mã.

Bạn nhận được những điều này vì twitterd không phải là khuôn khổ, một chương trình được bao gồm trong khuôn khổ. Mã khung thực tế nằm trong tệp Twitter. Nếu bạn cố gắng dịch ngược lại thay vào đó, bạn sẽ ít nhất có được một số tiêu đề mục tiêu c. Tôi khuyên bạn nên sử dụng tùy chọn -H để tiêu đề sẽ được tạo dưới dạng tệp trong thư mục hiện tại. Nếu không có nó, các tiêu đề sẽ được gửi đến thiết bị đầu cuối của bạn cái khác, và nó sẽ rất khó để tìm thấy bất cứ điều gì. Tuy nhiên, rất có thể hầu hết các biểu tượng của nó đều bị tước đi, do đó, dịch ngược sẽ không cung cấp nhiều.