Returns an object created using the symbol_table_name and layer_name of the Module. Args: object_type: Name of the type/enumeration (within the module) to construct offset: The location of the object, ignored when symbol_type is SYMBOL native_laye
(
self,
object_type: str,
offset: Optional[int] = None,
native_layer_name: Optional[str] = None,
absolute: bool = False,
**kwargs,
)
| 229 | return return_val |
| 230 | |
| 231 | def object( |
| 232 | self, |
| 233 | object_type: str, |
| 234 | offset: Optional[int] = None, |
| 235 | native_layer_name: Optional[str] = None, |
| 236 | absolute: bool = False, |
| 237 | **kwargs, |
| 238 | ) -> "interfaces.objects.ObjectInterface": |
| 239 | """Returns an object created using the symbol_table_name and layer_name |
| 240 | of the Module. |
| 241 | |
| 242 | Args: |
| 243 | object_type: Name of the type/enumeration (within the module) to construct |
| 244 | offset: The location of the object, ignored when symbol_type is SYMBOL |
| 245 | native_layer_name: Name of the layer in which constructed objects are made (for pointers) |
| 246 | absolute: whether the type's offset is absolute within memory or relative to the module |
| 247 | """ |
| 248 | if constants.BANG not in object_type: |
| 249 | object_type = self.symbol_table_name + constants.BANG + object_type |
| 250 | elif not object_type.startswith(self.symbol_table_name + constants.BANG): |
| 251 | raise ValueError( |
| 252 | "Cannot reference another module when constructing an object" |
| 253 | ) |
| 254 | |
| 255 | if offset is None: |
| 256 | raise TypeError("Offset must not be None for non-symbol objects") |
| 257 | |
| 258 | if not absolute: |
| 259 | offset += self._offset |
| 260 | |
| 261 | # We have to allow using an alternative layer name due to pool scanners switching |
| 262 | # to the memory layer for scanning samples prior to Windows 10. |
| 263 | layer_name = kwargs.pop("layer_name", self._layer_name) |
| 264 | |
| 265 | return self._context.object( |
| 266 | object_type=object_type, |
| 267 | layer_name=layer_name, |
| 268 | offset=offset, |
| 269 | native_layer_name=native_layer_name or self._native_layer_name, |
| 270 | **kwargs, |
| 271 | ) |
| 272 | |
| 273 | def object_from_symbol( |
| 274 | self, |
no outgoing calls
no test coverage detected