atosl 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +23 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +33 -0
- data/Rakefile +14 -0
- data/atosl.gemspec +25 -0
- data/bin/atosl +48 -0
- data/ext/atosl/atosl.c +153 -0
- data/ext/atosl/atosl.h +4 -0
- data/ext/atosl/converter.c +411 -0
- data/ext/atosl/converter.h +9 -0
- data/ext/atosl/cputype.h +347 -0
- data/ext/atosl/debug.h +11 -0
- data/ext/atosl/dwarf2.h +844 -0
- data/ext/atosl/extconf.rb +9 -0
- data/ext/atosl/fat.h +25 -0
- data/ext/atosl/loader.h +1440 -0
- data/ext/atosl/macho.c +3333 -0
- data/ext/atosl/macho.h +602 -0
- data/ext/atosl/main.h +4 -0
- data/ext/atosl/nlist.h +312 -0
- data/lib/atosl.rb +8 -0
- data/lib/atosl/version.rb +3 -0
- data/test/test_atosl.rb +8 -0
- metadata +114 -0
data/ext/atosl/main.h
ADDED
data/ext/atosl/nlist.h
ADDED
@@ -0,0 +1,312 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.
|
3
|
+
*
|
4
|
+
* @APPLE_LICENSE_HEADER_START@
|
5
|
+
*
|
6
|
+
* This file contains Original Code and/or Modifications of Original Code
|
7
|
+
* as defined in and that are subject to the Apple Public Source License
|
8
|
+
* Version 2.0 (the 'License'). You may not use this file except in
|
9
|
+
* compliance with the License. Please obtain a copy of the License at
|
10
|
+
* http://www.opensource.apple.com/apsl/ and read it before using this
|
11
|
+
* file.
|
12
|
+
*
|
13
|
+
* The Original Code and all software distributed under the License are
|
14
|
+
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
15
|
+
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
16
|
+
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
17
|
+
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
18
|
+
* Please see the License for the specific language governing rights and
|
19
|
+
* limitations under the License.
|
20
|
+
*
|
21
|
+
* @APPLE_LICENSE_HEADER_END@
|
22
|
+
*/
|
23
|
+
#ifndef _MACHO_NLIST_H_
|
24
|
+
#define _MACHO_NLIST_H_
|
25
|
+
/* $NetBSD: nlist.h,v 1.5 1994/10/26 00:56:11 cgd Exp $ */
|
26
|
+
|
27
|
+
/*-
|
28
|
+
* Copyright (c) 1991, 1993
|
29
|
+
* The Regents of the University of California. All rights reserved.
|
30
|
+
* (c) UNIX System Laboratories, Inc.
|
31
|
+
* All or some portions of this file are derived from material licensed
|
32
|
+
* to the University of California by American Telephone and Telegraph
|
33
|
+
* Co. or Unix System Laboratories, Inc. and are reproduced herein with
|
34
|
+
* the permission of UNIX System Laboratories, Inc.
|
35
|
+
*
|
36
|
+
* Redistribution and use in source and binary forms, with or without
|
37
|
+
* modification, are permitted provided that the following conditions
|
38
|
+
* are met:
|
39
|
+
* 1. Redistributions of source code must retain the above copyright
|
40
|
+
* notice, this list of conditions and the following disclaimer.
|
41
|
+
* 2. Redistributions in binary form must reproduce the above copyright
|
42
|
+
* notice, this list of conditions and the following disclaimer in the
|
43
|
+
* documentation and/or other materials provided with the distribution.
|
44
|
+
* 3. All advertising materials mentioning features or use of this software
|
45
|
+
* must display the following acknowledgement:
|
46
|
+
* This product includes software developed by the University of
|
47
|
+
* California, Berkeley and its contributors.
|
48
|
+
* 4. Neither the name of the University nor the names of its contributors
|
49
|
+
* may be used to endorse or promote products derived from this software
|
50
|
+
* without specific prior written permission.
|
51
|
+
*
|
52
|
+
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
53
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
54
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
55
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
56
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
57
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
58
|
+
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
59
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
60
|
+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
61
|
+
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
62
|
+
* SUCH DAMAGE.
|
63
|
+
*
|
64
|
+
* @(#)nlist.h 8.2 (Berkeley) 1/21/94
|
65
|
+
*/
|
66
|
+
#include <stdint.h>
|
67
|
+
|
68
|
+
/*
|
69
|
+
* Format of a symbol table entry of a Mach-O file for 32-bit architectures.
|
70
|
+
* Modified from the BSD format. The modifications from the original format
|
71
|
+
* were changing n_other (an unused field) to n_sect and the addition of the
|
72
|
+
* N_SECT type. These modifications are required to support symbols in a larger
|
73
|
+
* number of sections not just the three sections (text, data and bss) in a BSD
|
74
|
+
* file.
|
75
|
+
*/
|
76
|
+
struct nlist {
|
77
|
+
union {
|
78
|
+
#ifndef __LP64__
|
79
|
+
char *n_name; /* for use when in-core */
|
80
|
+
#endif
|
81
|
+
uint32_t n_strx; /* index into the string table */
|
82
|
+
} n_un;
|
83
|
+
uint8_t n_type; /* type flag, see below */
|
84
|
+
uint8_t n_sect; /* section number or NO_SECT */
|
85
|
+
int16_t n_desc; /* see <mach-o/stab.h> */
|
86
|
+
uint32_t n_value; /* value of this symbol (or stab offset) */
|
87
|
+
};
|
88
|
+
|
89
|
+
/*
|
90
|
+
* This is the symbol table entry structure for 64-bit architectures.
|
91
|
+
*/
|
92
|
+
struct nlist_64 {
|
93
|
+
union {
|
94
|
+
uint32_t n_strx; /* index into the string table */
|
95
|
+
} n_un;
|
96
|
+
uint8_t n_type; /* type flag, see below */
|
97
|
+
uint8_t n_sect; /* section number or NO_SECT */
|
98
|
+
uint16_t n_desc; /* see <mach-o/stab.h> */
|
99
|
+
uint64_t n_value; /* value of this symbol (or stab offset) */
|
100
|
+
};
|
101
|
+
|
102
|
+
/*
|
103
|
+
* Symbols with a index into the string table of zero (n_un.n_strx == 0) are
|
104
|
+
* defined to have a null, "", name. Therefore all string indexes to non null
|
105
|
+
* names must not have a zero string index. This is bit historical information
|
106
|
+
* that has never been well documented.
|
107
|
+
*/
|
108
|
+
|
109
|
+
/*
|
110
|
+
* The n_type field really contains four fields:
|
111
|
+
* unsigned char N_STAB:3,
|
112
|
+
* N_PEXT:1,
|
113
|
+
* N_TYPE:3,
|
114
|
+
* N_EXT:1;
|
115
|
+
* which are used via the following masks.
|
116
|
+
*/
|
117
|
+
#define N_STAB 0xe0 /* if any of these bits set, a symbolic debugging entry */
|
118
|
+
#define N_PEXT 0x10 /* private external symbol bit */
|
119
|
+
#define N_TYPE 0x0e /* mask for the type bits */
|
120
|
+
#define N_EXT 0x01 /* external symbol bit, set for external symbols */
|
121
|
+
|
122
|
+
/*
|
123
|
+
* Only symbolic debugging entries have some of the N_STAB bits set and if any
|
124
|
+
* of these bits are set then it is a symbolic debugging entry (a stab). In
|
125
|
+
* which case then the values of the n_type field (the entire field) are given
|
126
|
+
* in <mach-o/stab.h>
|
127
|
+
*/
|
128
|
+
|
129
|
+
/*
|
130
|
+
* Values for N_TYPE bits of the n_type field.
|
131
|
+
*/
|
132
|
+
#define N_UNDF 0x0 /* undefined, n_sect == NO_SECT */
|
133
|
+
#define N_ABS 0x2 /* absolute, n_sect == NO_SECT */
|
134
|
+
#define N_SECT 0xe /* defined in section number n_sect */
|
135
|
+
#define N_PBUD 0xc /* prebound undefined (defined in a dylib) */
|
136
|
+
#define N_INDR 0xa /* indirect */
|
137
|
+
|
138
|
+
/*
|
139
|
+
* If the type is N_INDR then the symbol is defined to be the same as another
|
140
|
+
* symbol. In this case the n_value field is an index into the string table
|
141
|
+
* of the other symbol's name. When the other symbol is defined then they both
|
142
|
+
* take on the defined type and value.
|
143
|
+
*/
|
144
|
+
|
145
|
+
/*
|
146
|
+
* If the type is N_SECT then the n_sect field contains an ordinal of the
|
147
|
+
* section the symbol is defined in. The sections are numbered from 1 and
|
148
|
+
* refer to sections in order they appear in the load commands for the file
|
149
|
+
* they are in. This means the same ordinal may very well refer to different
|
150
|
+
* sections in different files.
|
151
|
+
*
|
152
|
+
* The n_value field for all symbol table entries (including N_STAB's) gets
|
153
|
+
* updated by the link editor based on the value of it's n_sect field and where
|
154
|
+
* the section n_sect references gets relocated. If the value of the n_sect
|
155
|
+
* field is NO_SECT then it's n_value field is not changed by the link editor.
|
156
|
+
*/
|
157
|
+
#define NO_SECT 0 /* symbol is not in any section */
|
158
|
+
#define MAX_SECT 255 /* 1 thru 255 inclusive */
|
159
|
+
|
160
|
+
/*
|
161
|
+
* Common symbols are represented by undefined (N_UNDF) external (N_EXT) types
|
162
|
+
* who's values (n_value) are non-zero. In which case the value of the n_value
|
163
|
+
* field is the size (in bytes) of the common symbol. The n_sect field is set
|
164
|
+
* to NO_SECT. The alignment of a common symbol may be set as a power of 2
|
165
|
+
* between 2^1 and 2^15 as part of the n_desc field using the macros below. If
|
166
|
+
* the alignment is not set (a value of zero) then natural alignment based on
|
167
|
+
* the size is used.
|
168
|
+
*/
|
169
|
+
#define GET_COMM_ALIGN(n_desc) (((n_desc) >> 8) & 0x0f)
|
170
|
+
#define SET_COMM_ALIGN(n_desc,align) \
|
171
|
+
(n_desc) = (((n_desc) & 0xf0ff) | (((align) & 0x0f) << 8))
|
172
|
+
|
173
|
+
/*
|
174
|
+
* To support the lazy binding of undefined symbols in the dynamic link-editor,
|
175
|
+
* the undefined symbols in the symbol table (the nlist structures) are marked
|
176
|
+
* with the indication if the undefined reference is a lazy reference or
|
177
|
+
* non-lazy reference. If both a non-lazy reference and a lazy reference is
|
178
|
+
* made to the same symbol the non-lazy reference takes precedence. A reference
|
179
|
+
* is lazy only when all references to that symbol are made through a symbol
|
180
|
+
* pointer in a lazy symbol pointer section.
|
181
|
+
*
|
182
|
+
* The implementation of marking nlist structures in the symbol table for
|
183
|
+
* undefined symbols will be to use some of the bits of the n_desc field as a
|
184
|
+
* reference type. The mask REFERENCE_TYPE will be applied to the n_desc field
|
185
|
+
* of an nlist structure for an undefined symbol to determine the type of
|
186
|
+
* undefined reference (lazy or non-lazy).
|
187
|
+
*
|
188
|
+
* The constants for the REFERENCE FLAGS are propagated to the reference table
|
189
|
+
* in a shared library file. In that case the constant for a defined symbol,
|
190
|
+
* REFERENCE_FLAG_DEFINED, is also used.
|
191
|
+
*/
|
192
|
+
/* Reference type bits of the n_desc field of undefined symbols */
|
193
|
+
#define REFERENCE_TYPE 0x7
|
194
|
+
/* types of references */
|
195
|
+
#define REFERENCE_FLAG_UNDEFINED_NON_LAZY 0
|
196
|
+
#define REFERENCE_FLAG_UNDEFINED_LAZY 1
|
197
|
+
#define REFERENCE_FLAG_DEFINED 2
|
198
|
+
#define REFERENCE_FLAG_PRIVATE_DEFINED 3
|
199
|
+
#define REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY 4
|
200
|
+
#define REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY 5
|
201
|
+
|
202
|
+
/*
|
203
|
+
* To simplify stripping of objects that use are used with the dynamic link
|
204
|
+
* editor, the static link editor marks the symbols defined an object that are
|
205
|
+
* referenced by a dynamicly bound object (dynamic shared libraries, bundles).
|
206
|
+
* With this marking strip knows not to strip these symbols.
|
207
|
+
*/
|
208
|
+
#define REFERENCED_DYNAMICALLY 0x0010
|
209
|
+
|
210
|
+
/*
|
211
|
+
* For images created by the static link editor with the -twolevel_namespace
|
212
|
+
* option in effect the flags field of the mach header is marked with
|
213
|
+
* MH_TWOLEVEL. And the binding of the undefined references of the image are
|
214
|
+
* determined by the static link editor. Which library an undefined symbol is
|
215
|
+
* bound to is recorded by the static linker in the high 8 bits of the n_desc
|
216
|
+
* field using the SET_LIBRARY_ORDINAL macro below. The ordinal recorded
|
217
|
+
* references the libraries listed in the Mach-O's LC_LOAD_DYLIB,
|
218
|
+
* LC_LOAD_WEAK_DYLIB, LC_REEXPORT_DYLIB, LC_LOAD_UPWARD_DYLIB, and
|
219
|
+
* LC_LAZY_LOAD_DYLIB, etc. load commands in the order they appear in the
|
220
|
+
* headers. The library ordinals start from 1.
|
221
|
+
* For a dynamic library that is built as a two-level namespace image the
|
222
|
+
* undefined references from module defined in another use the same nlist struct
|
223
|
+
* an in that case SELF_LIBRARY_ORDINAL is used as the library ordinal. For
|
224
|
+
* defined symbols in all images they also must have the library ordinal set to
|
225
|
+
* SELF_LIBRARY_ORDINAL. The EXECUTABLE_ORDINAL refers to the executable
|
226
|
+
* image for references from plugins that refer to the executable that loads
|
227
|
+
* them.
|
228
|
+
*
|
229
|
+
* The DYNAMIC_LOOKUP_ORDINAL is for undefined symbols in a two-level namespace
|
230
|
+
* image that are looked up by the dynamic linker with flat namespace semantics.
|
231
|
+
* This ordinal was added as a feature in Mac OS X 10.3 by reducing the
|
232
|
+
* value of MAX_LIBRARY_ORDINAL by one. So it is legal for existing binaries
|
233
|
+
* or binaries built with older tools to have 0xfe (254) dynamic libraries. In
|
234
|
+
* this case the ordinal value 0xfe (254) must be treated as a library ordinal
|
235
|
+
* for compatibility.
|
236
|
+
*/
|
237
|
+
#define GET_LIBRARY_ORDINAL(n_desc) (((n_desc) >> 8) & 0xff)
|
238
|
+
#define SET_LIBRARY_ORDINAL(n_desc,ordinal) \
|
239
|
+
(n_desc) = (((n_desc) & 0x00ff) | (((ordinal) & 0xff) << 8))
|
240
|
+
#define SELF_LIBRARY_ORDINAL 0x0
|
241
|
+
#define MAX_LIBRARY_ORDINAL 0xfd
|
242
|
+
#define DYNAMIC_LOOKUP_ORDINAL 0xfe
|
243
|
+
#define EXECUTABLE_ORDINAL 0xff
|
244
|
+
|
245
|
+
/*
|
246
|
+
* The bit 0x0020 of the n_desc field is used for two non-overlapping purposes
|
247
|
+
* and has two different symbolic names, N_NO_DEAD_STRIP and N_DESC_DISCARDED.
|
248
|
+
*/
|
249
|
+
|
250
|
+
/*
|
251
|
+
* The N_NO_DEAD_STRIP bit of the n_desc field only ever appears in a
|
252
|
+
* relocatable .o file (MH_OBJECT filetype). And is used to indicate to the
|
253
|
+
* static link editor it is never to dead strip the symbol.
|
254
|
+
*/
|
255
|
+
#define N_NO_DEAD_STRIP 0x0020 /* symbol is not to be dead stripped */
|
256
|
+
|
257
|
+
/*
|
258
|
+
* The N_DESC_DISCARDED bit of the n_desc field never appears in linked image.
|
259
|
+
* But is used in very rare cases by the dynamic link editor to mark an in
|
260
|
+
* memory symbol as discared and longer used for linking.
|
261
|
+
*/
|
262
|
+
#define N_DESC_DISCARDED 0x0020 /* symbol is discarded */
|
263
|
+
|
264
|
+
/*
|
265
|
+
* The N_WEAK_REF bit of the n_desc field indicates to the dynamic linker that
|
266
|
+
* the undefined symbol is allowed to be missing and is to have the address of
|
267
|
+
* zero when missing.
|
268
|
+
*/
|
269
|
+
#define N_WEAK_REF 0x0040 /* symbol is weak referenced */
|
270
|
+
|
271
|
+
/*
|
272
|
+
* The N_WEAK_DEF bit of the n_desc field indicates to the static and dynamic
|
273
|
+
* linkers that the symbol definition is weak, allowing a non-weak symbol to
|
274
|
+
* also be used which causes the weak definition to be discared. Currently this
|
275
|
+
* is only supported for symbols in coalesed sections.
|
276
|
+
*/
|
277
|
+
#define N_WEAK_DEF 0x0080 /* coalesed symbol is a weak definition */
|
278
|
+
|
279
|
+
/*
|
280
|
+
* The N_REF_TO_WEAK bit of the n_desc field indicates to the dynamic linker
|
281
|
+
* that the undefined symbol should be resolved using flat namespace searching.
|
282
|
+
*/
|
283
|
+
#define N_REF_TO_WEAK 0x0080 /* reference to a weak symbol */
|
284
|
+
|
285
|
+
/*
|
286
|
+
* The N_ARM_THUMB_DEF bit of the n_desc field indicates that the symbol is
|
287
|
+
* a defintion of a Thumb function.
|
288
|
+
*/
|
289
|
+
#define N_ARM_THUMB_DEF 0x0008 /* symbol is a Thumb function (ARM) */
|
290
|
+
|
291
|
+
/*
|
292
|
+
* The N_SYMBOL_RESOLVER bit of the n_desc field indicates that the
|
293
|
+
* that the function is actually a resolver function and should
|
294
|
+
* be called to get the address of the real function to use.
|
295
|
+
* This bit is only available in .o files (MH_OBJECT filetype)
|
296
|
+
*/
|
297
|
+
#define N_SYMBOL_RESOLVER 0x0100
|
298
|
+
|
299
|
+
#ifndef __STRICT_BSD__
|
300
|
+
#if __cplusplus
|
301
|
+
extern "C" {
|
302
|
+
#endif /* __cplusplus */
|
303
|
+
/*
|
304
|
+
* The function nlist(3) from the C library.
|
305
|
+
*/
|
306
|
+
extern int nlist (const char *filename, struct nlist *list);
|
307
|
+
#if __cplusplus
|
308
|
+
}
|
309
|
+
#endif /* __cplusplus */
|
310
|
+
#endif /* __STRICT_BSD__ */
|
311
|
+
|
312
|
+
#endif /* _MACHO_LIST_H_ */
|
data/lib/atosl.rb
ADDED
data/test/test_atosl.rb
ADDED
metadata
ADDED
@@ -0,0 +1,114 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: atosl
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Reno Qiu
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-03-18 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.4'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.4'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake-compiler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: atosl is used for converting binary addresses within a macho file to
|
56
|
+
symbols.
|
57
|
+
email:
|
58
|
+
- dechao.qiu@gmail.com
|
59
|
+
executables:
|
60
|
+
- atosl
|
61
|
+
extensions:
|
62
|
+
- ext/atosl/extconf.rb
|
63
|
+
extra_rdoc_files: []
|
64
|
+
files:
|
65
|
+
- .gitignore
|
66
|
+
- Gemfile
|
67
|
+
- LICENSE.txt
|
68
|
+
- README.md
|
69
|
+
- Rakefile
|
70
|
+
- atosl.gemspec
|
71
|
+
- bin/atosl
|
72
|
+
- ext/atosl/atosl.c
|
73
|
+
- ext/atosl/atosl.h
|
74
|
+
- ext/atosl/converter.c
|
75
|
+
- ext/atosl/converter.h
|
76
|
+
- ext/atosl/cputype.h
|
77
|
+
- ext/atosl/debug.h
|
78
|
+
- ext/atosl/dwarf2.h
|
79
|
+
- ext/atosl/extconf.rb
|
80
|
+
- ext/atosl/fat.h
|
81
|
+
- ext/atosl/loader.h
|
82
|
+
- ext/atosl/macho.c
|
83
|
+
- ext/atosl/macho.h
|
84
|
+
- ext/atosl/main.h
|
85
|
+
- ext/atosl/nlist.h
|
86
|
+
- lib/atosl.rb
|
87
|
+
- lib/atosl/version.rb
|
88
|
+
- test/test_atosl.rb
|
89
|
+
homepage: https://github.com/renoqiu/atosl
|
90
|
+
licenses:
|
91
|
+
- MIT
|
92
|
+
metadata: {}
|
93
|
+
post_install_message:
|
94
|
+
rdoc_options: []
|
95
|
+
require_paths:
|
96
|
+
- lib
|
97
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - '>='
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '0'
|
107
|
+
requirements: []
|
108
|
+
rubyforge_project:
|
109
|
+
rubygems_version: 2.0.12
|
110
|
+
signing_key:
|
111
|
+
specification_version: 4
|
112
|
+
summary: atos for Linux.
|
113
|
+
test_files:
|
114
|
+
- test/test_atosl.rb
|