首页
社区
课程
招聘
[原创] Unicorn 在 Android 的应用
发表于: 2019-8-15 01:32 76935

[原创] Unicorn 在 Android 的应用

2019-8-15 01:32
76935
收藏
免费 114
支持
分享
打赏 + 82.00雪花
打赏次数 9 雪花 + 82.00
 
赞赏  kanxue   +5.00 2019/09/05 精品文章~
赞赏  backahasten   +5.00 2019/09/04 又看了一遍,感觉真不错,再加5块(手动捂脸)
赞赏  backahasten   +10.00 2019/09/04 好文章,正在学unicorn,很强大
赞赏  orz1ruo   +5.00 2019/08/19 感谢分享~
赞赏  NearJMP   +2.00 2019/08/16
赞赏  supperlitt   +5.00 2019/08/15
赞赏  JoenChen   +20.00 2019/08/15 少有的好文章!!!
赞赏  capser   +10.00 2019/08/15 感谢分享~
赞赏  Imyang   +20.00 2019/08/15 精品文章~
最新回复 (98)
雪    币: 0
活跃值: (81)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
76
不明觉厉,点赞点赞
2020-6-29 12:30
0
雪    币: 41
活跃值: (928)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
77
正在学习,感谢
2020-12-1 08:53
0
雪    币: 41
活跃值: (928)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
78
正在学习,感谢
2020-12-1 08:53
0
雪    币: 785
活跃值: (2503)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
79
楼主很用心了
2020-12-30 10:50
0
雪    币: 271
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
80
mu.mem_map(ADDRESS, 2*0x10000)

这段代码在内存地址0x10000处映射了一段大小为2M的内存。

上面这个有点问题吧,2M是2*1024*1024=2*0x100000, 2*0x10000是1/8M吧

2021-3-27 13:34
1
雪    币: 102
活跃值: (2185)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
81
mark
2021-6-29 13:30
0
雪    币: 198
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
82
太强了,受教受教
2021-11-2 17:00
0
雪    币: 4623
活跃值: (6878)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
83
大侠出马,一个顶3个
2021-11-2 17:07
0
雪    币: 24
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
84
太强了,膜拜
2022-1-9 20:02
0
雪    币: 138
活跃值: (1147)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
85
在利用emulator调用so的导出函数时,传入参数后,为什么logging并不会像视频那样输出参数DEBUG信息,最后返回的时候也是none,我的提问地址在:https://www.kanxue.com/question-read-806574.htm
2022-3-3 16:56
0
雪    币: 116
活跃值: (1012)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
86
牛逼
2022-3-6 11:19
0
雪    币: 232
活跃值: (257)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
87
tql
2022-4-13 12:42
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
88
666
2022-9-7 11:30
0
雪    币: 25
活跃值: (580)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
89
没搞懂,这个脚本要是要运行在linux系统上吗?有没有更详细一点的教程
2023-3-7 12:31
0
雪    币: 231
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
90
太强了,谢谢大佬总结,收获颇丰
2023-5-9 14:39
0
雪    币: 230
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
91
终于找到大佬的文章了
2023-8-20 17:55
0
雪    币: 3694
活跃值: (31056)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
92
66
2023-8-21 09:17
1
雪    币: 400
活跃值: (795)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Da_
93

大佬,请问 《Unicorn 调用SO框架已成,实战调用》,这些文章不公开了嘛,我看印象笔记分享的文章中,找不到这个文章的连接了。

2023-8-31 15:18
0
雪    币: 1330
活跃值: (184)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
94
太强了,学习学习
2023-12-27 00:47
0
雪    币: 120
活跃值: (1603)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
95
强大的可怕
2023-12-28 00:06
0
雪    币: 5055
活跃值: (4813)
能力值: ( LV10,RANK:171 )
在线值:
发帖
回帖
粉丝
96
超赞,感谢分享!!
2024-5-27 18:03
0
雪    币: 116
活跃值: (1012)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
97
重温经典 醍醐灌顶 不胜感激
2024-7-9 15:54
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
98
(self.address_ptr, self.address) = hooker.write_function_table({
    4: self.get_version,
    5: self.define_class,
    6: self.find_class,
    7: self.from_reflected_method,
    8: self.from_reflected_field,
    9: self.to_reflected_method,
    10: self.get_superclass,
    11: self.is_assignable_from,
    12: self.to_reflected_field,
    13: self.throw,
    14: self.throw_new,
    15: self.exception_occurred,
    16: self.exception_describe,
    17: self.exception_clear,
    18: self.fatal_error,
    19: self.push_local_frame,
    20: self.pop_local_frame,
    21: self.new_global_ref,
    22: self.delete_global_ref,
    23: self.get_class_loader,
    24: self.get_class_path,
    25: self.load_class,
    26: self.invoke_method,
    27: self.invoke_constructor,
    28: self.get_static_field,
    29: self.set_static_field,
    30: self.get_instance_field,
    31: self.set_instance_field,
    32: self.create_array,
    33: self.allocate_object,
    34: self.get_method_descriptor,
    35: self.get_field_descriptor,
    36: self.get_class_name,
    37: self.get_method_name,
    38: self.get_field_name,
    39: self.get_class_loader_name,
    40: self.get_stack_trace,
    41: self.get_local_variable,
    42: self.get_class_loader_path,
    43: self.get_class_loader_info,
    44: self.get_exception_message,
    45: self.get_exception_stack_trace,
    46: self.get_exception_type,
    47: self.print_exception,
    48: self.handle_exception,
    49: self.handle_error,
    50: self.print_stack_trace,
    51: self.flush_output,
    52: self.flush_error,
    53: self.exit_program,
    54: self.get_system_property,
    55: self.set_system_property,
    56: self.get_environment_variable,
    57: self.set_environment_variable,
    58: self.get_current_time,
    59: self.get_process_id,
    60: self.get_thread_id,
    61: self.get_thread_name,
    62: self.set_thread_name,
    63: self.get_thread_state,
    64: self.create_thread,
    65: self.stop_thread,
    66: self.join_thread,
    67: self.suspend_thread,
    68: self.resume_thread,
    69: self.is_thread_alive,
    70: self.get_thread_priority,
    71: self.set_thread_priority,
    72: self.get_thread_stack_size,
    73: self.set_thread_stack_size,
    74: self.get_thread_local_storage,
    75: self.set_thread_local_storage,
    76: self.get_thread_exception,
    77: self.set_thread_exception,
    78: self.get_thread_exception_clear,
    79: self.clear_thread_exception,
    80: self.get_heap_statistics,
    81: self.get_heap_memory,
    82: self.get_object_size,
    83: self.get_class_size,
    84: self.get_total_allocated_memory,
    85: self.get_used_memory,
    86: self.gc_collect,
    87: self.gc_pause,
    88: self.gc_info,
    89: self.get_alloc_block_size,
    90: self.get_gc_stats,
    91: self.get_alloc_stats,
    92: self.get_jvm_version,
    93: self.get_jvm_flags,
    94: self.get_jvm_properties,
    95: self.get_jvm_info,
    96: self.get_class_loader_statistics,
    97: self.get_class_loader_usage,
    98: self.get_gc_algorithm,
    99: self.get_gc_collection_count,
    100: self.get_gc_pause_time,
    101: self.get_gc_heap_size,
    102: self.get_gc_used_memory,
    103: self.get_gc_free_memory,
    104: self.get_gc_available_memory,
    105: self.get_gc_threads,
    106: self.get_gc_threads_info,
    107: self.get_gc_thread_state,
    108: self.get_gc_time_stamp,
    109: self.get_gc_thread_count,
    110: self.get_gc_memory_dump,
    111: self.get_gc_heap_dump,
    112: self.get_gc_compaction_stats,
    113: self.get_gc_metadata,
    114: self.get_gc_algorithm_stats,
    115: self.get_gc_policy,
    116: self.get_gc_logging,
    117: self.set_gc_logging,
    118: self.clear_gc_logging,
    119: self.get_gc_system_info,
    120: self.get_gc_thread_info,
    121: self.get_gc_pause_stats,
    122: self.get_gc_memory_stats,
    123: self.get_gc_threads_state,
    124: self.get_gc_dump_path,
    125: self.get_gc_collection_interval,
    126: self.get_gc_pause_interval,
    127: self.get_gc_pause_time_stats,
    128: self.get_gc_memory_type,
    129: self.get_gc_verbose,
    130: self.get_gc_usage,
    131: self.get_gc_log_level,
    132: self.get_gc_stats_detailed,
    133: self.get_gc_benchmark,
    134: self.get_gc_efficiency,
    135: self.get_gc_frequency,
    136: self.get_gc_size,
    137: self.get_gc_time_cost,
    138: self.get_gc_efficiency_ratio,
    139: self.get_gc_trigger,
    140: self.get_gc_throughput,
    141: self.get_gc_thread_time,
    142: self.get_gc_thread_count_stats,
    143: self.get_gc_object_count,
    144: self.get_gc_object_size,
    145: self.get_gc_object_allocations,
    146: self.get_gc_object_deallocations,
    147: self.get_gc_object_thresholds,
    148: self.get_gc_finalization,
    149: self.get_gc_cleanup,
    150: self.get_gc_deallocation,
    151: self.get_gc_allocation,
    152: self.get_gc_object_alignment,
    153: self.get_gc_object_properties,
    154: self.get_gc_object_tagging,
    155: self.get_gc_compaction,
    156: self.get_gc_object_compaction,
    157: self.get_gc_object_collection,
    158: self.get_gc_object_performance,
    159: self.get_gc_object_efficiency,
    160: self.get_gc_object_statistics,
    161: self.get_gc_type,
    162: self.get_gc_subtype,
    163: self.get_gc_class_name,
    164: self.get_gc_method_name,
    165: self.get_gc_method_type,
    166: self.get_gc_field_name,
    167: self.get_gc_field_type,
    168: self.get_gc_method_return_type,
    169: self.get_gc_field_descriptor,
    170: self.get_gc_method_descriptor,
    171: self.get_gc_type_descriptor,
    172: self.get_gc_object_class,
    173: self.get_gc_field_class,
    174: self.get_gc_method_class,
    175: self.get_gc_object_type,
    176: self.get_gc_object_size_stats,
    177: self.get_gc_object_pool_size,
    178: self.get_gc_object_pool_growth,
    179: self.get_gc_object_pool_shrink,
    180: self.get_gc_object_pool_efficiency,
    181: self.get_gc_object_pool_utilization,
    182: self.get_gc_object_pool_metrics,
    183: self.get_gc_object_pool_overhead,
    184: self.get_gc_object_pool_statistics,
    185: self.get_gc_object_pool_balance,
    186: self.get_gc_object_pool_efficiency_ratio,
    187: self.get_gc_object_pool_cleanup,
    188: self.get_gc_object_pool_deallocation,
    189: self.get_gc_object_pool_allocation,
    190: self.get_gc_object_pool_release,
    191: self.get_gc_object_pool_size_stats,
    192: self.get_gc_object_pool_growth_stats,
    193: self.get_gc_object_pool_shrink_stats,
    194: self.get_gc_object_pool_balance_stats,
    195: self.get_gc_object_pool_efficiency_stats,
    196: self.get_gc_object_pool_cleanup_stats,
197: self.get_gc_object_pool_deallocation_stats,
    198: self.get_gc_object_pool_allocation_stats,
    199: self.get_gc_object_pool_release_stats,
    200: self.get_gc_object_pool_size_summary,
    201: self.get_gc_object_pool_growth_summary,
    202: self.get_gc_object_pool_shrink_summary,
    203: self.get_gc_object_pool_balance_summary,
    204: self.get_gc_object_pool_efficiency_summary,
    205: self.get_gc_object_pool_cleanup_summary,
    206: self.get_gc_object_pool_deallocation_summary,
    207: self.get_gc_object_pool_allocation_summary,
    208: self.get_gc_object_pool_release_summary,
    209: self.get_gc_pool_metrics,
    210: self.get_gc_pool_utilization,
    211: self.get_gc_pool_overhead,
    212: self.get_gc_pool_balance,
    213: self.get_gc_pool_efficiency,
    214: self.get_gc_pool_cleanup,
    215: self.get_gc_pool_deallocation,
    216: self.get_gc_pool_allocation,
    217: self.get_gc_pool_release,
    218: self.get_gc_pool_size_stats,
    219: self.get_gc_pool_growth_stats,
    220: self.get_gc_pool_shrink_stats,
    221: self.get_gc_pool_balance_stats,
    222: self.get_gc_pool_efficiency_stats,
    223: self.get_gc_pool_cleanup_stats,
    224: self.get_gc_pool_deallocation_stats,
    225: self.get_gc_pool_allocation_stats,
    226: self.get_gc_pool_release_stats,
    227: self.get_gc_pool_size_summary,
    228: self.get_gc_pool_growth_summary,
    229: self.get_gc_pool_shrink_summary,
    230: self.get_gc_pool_balance_summary,
    231: self.get_gc_pool_efficiency_summary,
    232: self.get_gc_pool_cleanup_summary,
})
2024-12-19 03:08
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
99
# - LOAD (determinate what parts of the ELF file get mapped into memory)
load_segments = [x for x in elf.iter_segments() if x.header.p_type == 'PT_LOAD']
 
for segment in load_segments:
    prot = UC_PROT_ALL
    self.emu.memory.mem_map(load_base + segment.header.p_vaddr, segment.header.p_memsz, prot)
    self.emu.memory.mem_write(load_base + segment.header.p_vaddr, segment.data())     self.emu.memory.mem_map这个是unicorn实例吗?如果是参数2是错误的必须是1000的倍数否则代码报错
1天前
0
游客
登录 | 注册 方可回帖
返回
//