日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 禁用dlsym_Android 7.0 dlopen 函数分析

發布時間:2023/12/19 Android 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 禁用dlsym_Android 7.0 dlopen 函数分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 說明

Android 7.0 后使用 dlopen 函數無法獲取 soinfo 對應,因此也無法使用 dlsym 函數去調用第三方的 so 內的函數。這里給出 dlopen() 函數的源碼分析。

不同點可參考:https://blog.csdn.net/u011247544/article/details/75262360

2. 源碼分析

1. dlopen 函數

函數調用會首先走到 dlfcn.cpp 類內的 dlopen 函數(/bionic/linker/dlfcn.cpp)

85void* dlopen(const char* filename, int flags) {

86 void* caller_addr = __builtin_return_address(0);

87 return dlopen_ext(filename, flags, nullptr, caller_addr);

88}

69static void* dlopen_ext(const char* filename, int flags,

70 const android_dlextinfo* extinfo, void* caller_addr) {

71 ScopedPthreadMutexLocker locker(&g_dl_mutex);

72 void* result = do_dlopen(filename, flags, extinfo, caller_addr); // 調到 linker.cpp 類內

73 if (result == nullptr) {

74 __bionic_format_dlerror("dlopen failed", linker_get_error_buffer());

75 return nullptr;

76 }

77 return result;

78}

2. do_dlopen() 函數

這個函數實現在 linker.cpp 類內。do_dlopen 函數會調用 find_library 函數返回 soinfo 對象,并最終調用 si->to_handle() 函數返回 handle_。(/bionic/linker/linker.cpp)

2333void* do_dlopen(const char* name, int flags, const android_dlextinfo* extinfo,

2334 void* caller_addr) {

2335 soinfo* const caller = find_containing_library(caller_addr);

2336

2337 if ((flags & ~(RTLD_NOW|RTLD_LAZY|RTLD_LOCAL|RTLD_GLOBAL|RTLD_NODELETE|RTLD_NOLOAD)) != 0) {

2338 DL_ERR("invalid flags to dlopen: %x", flags);

2339 return nullptr;

2340 }

2341

2342 android_namespace_t* ns = get_caller_namespace(caller);

2343

2344 if (extinfo != nullptr) {

2345 if ((extinfo->flags & ~(ANDROID_DLEXT_VALID_FLAG_BITS)) != 0) {

2346 DL_ERR("invalid extended flags to android_dlopen_ext: 0x%" PRIx64, extinfo->flags);

2347 return nullptr;

2348 }

2349

2350 if ((extinfo->flags & ANDROID_DLEXT_USE_LIBRARY_FD) == 0 &&

2351 (extinfo->flags & ANDROID_DLEXT_USE_LIBRARY_FD_OFFSET) != 0) {

2352 DL_ERR("invalid extended flag combination (ANDROID_DLEXT_USE_LIBRARY_FD_OFFSET without "

2353 "ANDROID_DLEXT_USE_LIBRARY_FD): 0x%" PRIx64, extinfo->flags);

2354 return nullptr;

2355 }

2356

2357 if ((extinfo->flags & ANDROID_DLEXT_LOAD_AT_FIXED_ADDRESS) != 0 &&

2358 (extinfo->flags & (ANDROID_DLEXT_RESERVED_ADDRESS | ANDROID_DLEXT_RESERVED_ADDRESS_HINT)) != 0) {

2359 DL_ERR("invalid extended flag combination: ANDROID_DLEXT_LOAD_AT_FIXED_ADDRESS is not "

2360 "compatible with ANDROID_DLEXT_RESERVED_ADDRESS/ANDROID_DLEXT_RESERVED_ADDRESS_HINT");

2361 return nullptr;

2362 }

2363

2364 if ((extinfo->flags & ANDROID_DLEXT_USE_NAMESPACE) != 0) {

2365 if (extinfo->library_namespace == nullptr) {

2366 DL_ERR("ANDROID_DLEXT_USE_NAMESPACE is set but extinfo->library_namespace is null");

2367 return nullptr;

2368 }

2369 ns = extinfo->library_namespace;

2370 }

2371 }

2372

2373 ProtectedDataGuard guard;

2374 soinfo* si = find_library(ns, name, flags, extinfo, caller); // 這里往下調用返回 soinfo 對象

2375 if (si != nullptr) {

2376 si->call_constructors();

2377 return si->to_handle(); // 這里返回的是 調用 to_handle() 函數

2378 }

2379

2380 return nullptr;

2381}

下面給處 find_library 函數的追蹤:

首先是 find_library 函數

2159static soinfo* find_library(android_namespace_t* ns,

2160 const char* name, int rtld_flags,

2161 const android_dlextinfo* extinfo,

2162 soinfo* needed_by) {

2163 soinfo* si;

2164

2165 if (name == nullptr) {

2166 si = somain;

2167 } else if (!find_libraries(ns, needed_by, &name, 1, &si, nullptr, 0, rtld_flags,

2168 extinfo, /* add_as_children */ false)) {

2169 return nullptr;

2170 }

2171

2172 return si;

2173}

接著是 find_libraries 函數,源碼分析知道這個函數分為 4 步,暫未做具體分析

1994static bool find_libraries(android_namespace_t* ns,

1995 soinfo* start_with,

1996 const char* const library_names[],

1997 size_t library_names_count, soinfo* soinfos[],

1998 std::vector* ld_preloads,

1999 size_t ld_preloads_count, int rtld_flags,

2000 const android_dlextinfo* extinfo,

2001 bool add_as_children) {

2002 // Step 0: prepare.

2003 LoadTaskList load_tasks;

2004 std::unordered_mapreaders_map;

...

2053 if(!find_library_internal(ns, task, &zip_archive_cache, &load_tasks, rtld_flags)) {

2054 return false;

2055 }

...

2156 return linked;

2157}

然后是 find_library_internal 函數

1896static bool find_library_internal(android_namespace_t* ns,

1897 LoadTask* task,

1898 ZipArchiveCache* zip_archive_cache,

1899 LoadTaskList* load_tasks,

1900 int rtld_flags) {

1901 soinfo* candidate;

1902

1903 if (find_loaded_library_by_soname(ns, task->get_name(), &candidate)) {

1904 task->set_soinfo(candidate);

1905 return true;

1906 }

1907

1908 if (ns != &g_default_namespace) {

1909 // check public namespace

1910 candidate = g_public_namespace.find_if([&](soinfo* si) {

1911 return strcmp(task->get_name(), si->get_soname()) == 0;

1912 });

1913

1914 if (candidate != nullptr) {

1915 ns->add_soinfo(candidate);

1916 task->set_soinfo(candidate);

1917 return true;

1918 }

1919 }

1920

1921 // Library might still be loaded, the accurate detection

1922 // of this fact is done by load_library.

1923 TRACE("[ \"%s\" find_loaded_library_by_soname failed (*candidate=%s@%p). Trying harder...]",

1924 task->get_name(), candidate == nullptr ? "n/a" : candidate->get_realpath(), candidate);

1925

1926 if (load_library(ns, task, zip_archive_cache, load_tasks, rtld_flags)) {

1927 return true;

1928 } else {

1929 // In case we were unable to load the library but there

1930 // is a candidate loaded under the same soname but different

1931 // sdk level - return it anyways.

1932 if (candidate != nullptr) {

1933 task->set_soinfo(candidate);

1934 return true;

1935 }

1936 }

1937

1938 return false;

1939}

3. soinfo::to_handle() 函數

(/bionic/linker/linker.cpp)

do_dlopen 函數的最終返回是這個函數的返回,看下 這個函數的實現:

3442void* soinfo::to_handle() {

3443 if (get_application_target_sdk_version() <= 23 || !has_min_version(3)) {

3444 return this;

3445 }

3446

3447 return reinterpret_cast(get_handle());

3448}

然后調用了 get_handle() 函數。這個函數就是返回了 handle_

3436uintptr_t soinfo::get_handle() const {

3437 CHECK(has_min_version(3));

3438 CHECK(handle_ != 0);

3439 return handle_;

3440}

那 handle_ 的生成是在哪里呢?是在同目錄下的 generate_handle 函數

3450void soinfo::generate_handle() {

3451 CHECK(has_min_version(3));

3452 CHECK(handle_ == 0); // Make sure this is the first call

3453

3454 // Make sure the handle is unique and does not collide

3455 // with special values which are RTLD_DEFAULT and RTLD_NEXT.

3456 do {

3457 arc4random_buf(&handle_, sizeof(handle_));

3458 // the least significant bit for the handle is always 1

3459 // making it easy to test the type of handle passed to

3460 // dl* functions.

3461 handle_ = handle_ | 1;

3462 } while (handle_ == reinterpret_cast(RTLD_DEFAULT) ||

3463 handle_ == reinterpret_cast(RTLD_NEXT) ||

3464 g_soinfo_handles_map.find(handle_) != g_soinfo_handles_map.end());

3465

3466 g_soinfo_handles_map[handle_] = this;

3467}

由上可以看出, handle_ 是 arc4random_buf(&handle_, sizeof(handle_)); 函數生成的隨機值。并將這個值放到 static std::unordered_mapg_soinfo_handles_map 內,這個值與 soinfo 對應。

4. soinfo 結構體

soinfo 結構體就是 so 文件解析后的數據信息,解析處的 節信息,等等等等~~

176struct soinfo {

177 public:

178 typedef LinkedListsoinfo_list_t;

179 typedef LinkedListandroid_namespace_list_t;

180#if defined(__work_around_b_24465209__)

181 private:

182 char old_name_[SOINFO_NAME_LEN];

183#endif

184 public:

185 const ElfW(Phdr)* phdr;

186 size_t phnum;

187 ElfW(Addr) entry;

188 ElfW(Addr) base;

189 size_t size;

190

191#if defined(__work_around_b_24465209__)

192 uint32_t unused1; // DO NOT USE, maintained for compatibility.

193#endif

194

195 ElfW(Dyn)* dynamic;

196

197#if defined(__work_around_b_24465209__)

198 uint32_t unused2; // DO NOT USE, maintained for compatibility

199 uint32_t unused3; // DO NOT USE, maintained for compatibility

200#endif

201

202 soinfo* next;

203 private:

204 uint32_t flags_;

205

206 const char* strtab_;

207 ElfW(Sym)* symtab_;

208

209 size_t nbucket_;

210 size_t nchain_;

211 uint32_t* bucket_;

212 uint32_t* chain_;

213

214#if defined(__mips__) || !defined(__LP64__)

215 // This is only used by mips and mips64, but needs to be here for

216 // all 32-bit architectures to preserve binary compatibility.

217 ElfW(Addr)** plt_got_;

218#endif

219

220#if defined(USE_RELA)

221 ElfW(Rela)* plt_rela_;

222 size_t plt_rela_count_;

223

224 ElfW(Rela)* rela_;

225 size_t rela_count_;

226#else

227 ElfW(Rel)* plt_rel_;

228 size_t plt_rel_count_;

229

230 ElfW(Rel)* rel_;

231 size_t rel_count_;

232#endif

233

234 linker_function_t* preinit_array_;

235 size_t preinit_array_count_;

236

237 linker_function_t* init_array_;

238 size_t init_array_count_;

239 linker_function_t* fini_array_;

240 size_t fini_array_count_;

241

242 linker_function_t init_func_;

243 linker_function_t fini_func_;

244

245#if defined(__arm__)

246 public:

247 // ARM EABI section used for stack unwinding.

248 uint32_t* ARM_exidx;

249 size_t ARM_exidx_count;

250 private:

251#elif defined(__mips__)

252 uint32_t mips_symtabno_;

253 uint32_t mips_local_gotno_;

254 uint32_t mips_gotsym_;

255 bool mips_relocate_got(const VersionTracker& version_tracker,

256 const soinfo_list_t& global_group,

257 const soinfo_list_t& local_group);

258#if !defined(__LP64__)

259 bool mips_check_and_adjust_fp_modes();

260#endif

261#endif

262 size_t ref_count_;

263 public:

264 link_map link_map_head;

265

266 bool constructors_called;

267

268 // When you read a virtual address from the ELF file, add this

269 // value to get the corresponding address in the process' address space.

270 ElfW(Addr) load_bias;

271

272#if !defined(__LP64__)

273 bool has_text_relocations;

274#endif

275 bool has_DT_SYMBOLIC;

276

277 public:

278 soinfo(android_namespace_t* ns, const char* name, const struct stat* file_stat,

279 off64_t file_offset, int rtld_flags);

280 ~soinfo();

281

282 void call_constructors();

283 void call_destructors();

284 void call_pre_init_constructors();

285 bool prelink_image();

286 bool link_image(const soinfo_list_t& global_group, const soinfo_list_t& local_group,

287 const android_dlextinfo* extinfo);

288 bool protect_relro();

289

290 void add_child(soinfo* child);

291 void remove_all_links();

292

293 ino_t get_st_ino() const;

294 dev_t get_st_dev() const;

295 off64_t get_file_offset() const;

296

297 uint32_t get_rtld_flags() const;

298 uint32_t get_dt_flags_1() const;

299 void set_dt_flags_1(uint32_t dt_flags_1);

300

301 soinfo_list_t& get_children();

302 const soinfo_list_t& get_children() const;

303

304 soinfo_list_t& get_parents();

305

306 bool find_symbol_by_name(SymbolName& symbol_name,

307 const version_info* vi,

308 const ElfW(Sym)** symbol) const;

309

310 ElfW(Sym)* find_symbol_by_address(const void* addr);

311 ElfW(Addr) resolve_symbol_address(const ElfW(Sym)* s) const;

312

313 const char* get_string(ElfW(Word) index) const;

314 bool can_unload() const;

315 bool is_gnu_hash() const;

316

317 bool inline has_min_version(uint32_t min_version __unused) const {

318#if defined(__work_around_b_24465209__)

319 return (flags_ & FLAG_NEW_SOINFO) != 0 && version_ >= min_version;

320#else

321 return true;

322#endif

323 }

325 bool is_linked() const;

326 bool is_linker() const;

327 bool is_main_executable() const;

328

329 void set_linked();

330 void set_linker_flag();

331 void set_main_executable();

332 void set_nodelete();

333

334 void increment_ref_count();

335 size_t decrement_ref_count();

336

337 soinfo* get_local_group_root() const;

338

339 void set_soname(const char* soname);

340 const char* get_soname() const;

341 const char* get_realpath() const;

342 const ElfW(Versym)* get_versym(size_t n) const;

343 ElfW(Addr) get_verneed_ptr() const;

344 size_t get_verneed_cnt() const;

345 ElfW(Addr) get_verdef_ptr() const;

346 size_t get_verdef_cnt() const;

347

348 bool find_verdef_version_index(const version_info* vi, ElfW(Versym)* versym) const;

349

350 uint32_t get_target_sdk_version() const;

351

352 void set_dt_runpath(const char *);

353 const std::vector& get_dt_runpath() const;

354 android_namespace_t* get_primary_namespace();

355 void add_secondary_namespace(android_namespace_t* secondary_ns);

356

357 void set_mapped_by_caller(bool reserved_map);

358 bool is_mapped_by_caller() const;

359

360 uintptr_t get_handle() const;

361 void generate_handle();

362 void* to_handle();

363

364 private:

365 bool elf_lookup(SymbolName& symbol_name, const version_info* vi, uint32_t* symbol_index) const;

366 ElfW(Sym)* elf_addr_lookup(const void* addr);

367 bool gnu_lookup(SymbolName& symbol_name, const version_info* vi, uint32_t* symbol_index) const;

368 ElfW(Sym)* gnu_addr_lookup(const void* addr);

369

370 bool lookup_version_info(const VersionTracker& version_tracker, ElfW(Word) sym,

371 const char* sym_name, const version_info** vi);

372

373 void call_array(const char* array_name, linker_function_t* functions, size_t count, bool reverse);

374 void call_function(const char* function_name, linker_function_t function);

375 template376 bool relocate(const VersionTracker& version_tracker, ElfRelIteratorT&& rel_iterator,

377 const soinfo_list_t& global_group, const soinfo_list_t& local_group);

378

379 private:

380 // This part of the structure is only available

381 // when FLAG_NEW_SOINFO is set in this->flags.

382 uint32_t version_;

383

384 // version >= 0

385 dev_t st_dev_;

386 ino_t st_ino_;

387

388 // dependency graph

389 soinfo_list_t children_;

390 soinfo_list_t parents_;

391

392 // version >= 1

393 off64_t file_offset_;

394 uint32_t rtld_flags_;

395 uint32_t dt_flags_1_;

396 size_t strtab_size_;

397

398 // version >= 2

399

400 size_t gnu_nbucket_;

401 uint32_t* gnu_bucket_;

402 uint32_t* gnu_chain_;

403 uint32_t gnu_maskwords_;

404 uint32_t gnu_shift2_;

405 ElfW(Addr)* gnu_bloom_filter_;

406

407 soinfo* local_group_root_;

408

409 uint8_t* android_relocs_;

410 size_t android_relocs_size_;

411

412 const char* soname_;

413 std::string realpath_;

414

415 const ElfW(Versym)* versym_;

416

417 ElfW(Addr) verdef_ptr_;

418 size_t verdef_cnt_;

419

420 ElfW(Addr) verneed_ptr_;

421 size_t verneed_cnt_;

422

423 uint32_t target_sdk_version_;

424

425 // version >= 3

426 std::vectordt_runpath_;

427 android_namespace_t* primary_namespace_;

428 android_namespace_list_t secondary_namespaces_;

429 uintptr_t handle_;

430

431 friend soinfo* get_libdl_info();

432};

總結

以上是生活随笔為你收集整理的android 禁用dlsym_Android 7.0 dlopen 函数分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

日韩欧美在线高清 | 黄色一级大片免费看 | 99精品久久99久久久久 | 午夜久久福利影院 | 日韩激情小视频 | 97超视频在线观看 | 午夜精品一区二区三区四区 | 欧美一区二区三区免费看 | 91精品国产入口 | 精品一区二区在线观看 | 国产精品高清在线 | 久久高清免费观看 | 日韩一级片大全 | 中文字幕韩在线第一页 | 日日干av| 色偷偷88欧美精品久久久 | 精品一区二区电影 | av成人免费在线观看 | 黄色视屏在线免费观看 | 日韩一级电影网站 | 日韩中文字幕在线 | 天天性天天草 | 成人在线视频在线观看 | 91精品区| 久久久毛片 | 久久亚洲日本 | 日韩在线播放视频 | 亚洲综合成人专区片 | 久久久精品国产一区二区电影四季 | 婷婷在线色 | 在线播放第一页 | 在线观看日本高清mv视频 | 91视频久久久久 | 日日夜夜爱| 91精品一| 91激情视频在线 | 最新国产精品久久精品 | 久久99精品久久久久久久久久久久 | 91av在线电影 | 欧美日韩中文另类 | av网址最新| 精品国产一区二区三区久久久蜜月 | 91在线免费公开视频 | 美女视频黄免费 | 五月天久久婷 | 日韩一区二区三区高清在线观看 | 亚洲综合在线五月天 | 欧美不卡在线 | 日韩免费电影在线观看 | 日本女人在线观看 | 91精品久久久久久综合五月天 | 69视频在线 | 亚洲精品在线观看的 | 免费在线观看亚洲视频 | 亚洲丝袜一区二区 | 最近在线中文字幕 | 五月天电影免费在线观看一区 | 碰天天操天天 | 97综合视频 | 亚洲综合在线五月天 | 99久久精品免费看国产 | 久久久午夜视频 | 麻豆系列在线观看 | 国产高清黄| 亚洲成年人在线播放 | 国产涩涩网站 | 91av在线播放| 婷婷草 | 毛片网在线 | 午夜久久网站 | 亚洲精品免费观看 | 免费久久99精品国产婷婷六月 | 国产在线1区 | 国产在线第三页 | 日韩精品一区二区三区在线视频 | 五月婷婷影院 | 中文字幕av免费观看 | 天天综合色网 | 视频在线观看91 | 欧美日韩久久不卡 | 日韩在线免费不卡 | 性色av免费在线观看 | 中文字幕免费一区 | 黄色看片 | 国产成人福利在线观看 | 成人免费看片98欧美 | 91激情视频在线播放 | 中文字幕中文字幕在线中文字幕三区 | 操处女逼 | 黄色在线观看免费 | 日韩午夜视频在线观看 | 91精品国产自产在线观看 | 亚洲一级片 | 最新av免费 | 久久午夜网 | 国产手机在线精品 | 国内久久视频 | 超碰人人在 | 亚洲h在线播放在线观看h | 国产精品一区二区av影院萌芽 | 欧美福利网址 | 一区二区三区四区在线免费观看 | 成年人黄色在线观看 | 在线播放 亚洲 | 国产精品免费一区二区三区 | 国产永久免费观看 | 在线观看国产 | 免费三级大片 | 国产午夜三级一区二区三桃花影视 | 国产精品久久久久久久av电影 | 亚洲精品动漫成人3d无尽在线 | 99夜色 | 成人性生活大片 | 日韩欧美高清不卡 | www.香蕉| 九九九视频精品 | 日韩精品一区二区三区视频播放 | 亚洲一级片在线观看 | 国产成人久久精品亚洲 | 国产在线传媒 | 亚洲国产三级在线观看 | 亚洲高清视频在线观看免费 | 麻豆va一区二区三区久久浪 | 狠色狠色综合久久 | 日韩精品短视频 | 国产99自拍| 成年人国产视频 | 91黄色小网站 | 91精品久久久久久久久久入口 | a天堂中文在线 | 五月婷婷av在线 | 国产精品99久久久久久小说 | 韩国av一区二区三区 | 国产精品视频免费看 | 欧美一级乱黄 | 91麻豆国产 | 91精品国产99久久久久久久 | 九九色在线观看 | 插婷婷| 精品在线看| 成人一区影院 | 免费在线观看污 | 亚洲精品一区二区久 | 免费高清在线视频一区· | 精品一区二区综合 | 亚洲成人av电影在线 | 国产视频一 | 婷婷综合五月天 | 国产精品1区2区 | 天堂在线视频免费观看 | 国产一区视频在线 | 欧美激情精品久久久 | 国产99在线播放 | 91久久黄色| 怡红院av久久久久久久 | 国产无吗一区二区三区在线欢 | 亚洲精品综合久久 | 中文字幕在线乱 | 美女精品在线观看 | 国产小视频在线看 | 99精品一区| 色噜噜狠狠狠狠色综合久不 | 日本精品一区二区三区在线观看 | 亚洲精品国产视频 | 一色av | 狠狠色丁香婷婷综合久小说久 | 国产麻豆精品传媒av国产下载 | 天天天综合网 | 国产精品一区二区三区观看 | 狠狠色狠狠色合久久伊人 | 久久视频免费观看 | 日韩视频在线观看视频 | 精品在线视频观看 | www.久久久 | 色5月婷婷| 胖bbbb搡bbbb擦bbbb| 国产精品久久久久久久久大全 | 狠狠干,狠狠操 | 欧美性成人 | 免费三级黄色片 | 久久精品成人 | 91九色老| 精品欧美乱码久久久久久 | 亚洲综合小说 | 国产不卡在线观看视频 | 黄色小说视频在线 | 免费看黄网站在线 | 国产精品高潮呻吟久久av无 | 99视频精品视频高清免费 | 欧美亚洲精品一区 | 99热九九这里只有精品10 | 亚洲成人精品久久久 | 欧美精品一区二区在线播放 | 一级黄色毛片 | 国产精品第二页 | 欧美一级片在线免费观看 | 久久久国产精品人人片99精片欧美一 | 国产女人18毛片水真多18精品 | av福利在线免费观看 | 天天综合网天天综合色 | 色综合久久综合中文综合网 | 婷婷六月综合亚洲 | 色大片免费看 | 日韩精品免费在线 | 国产精品成人国产乱 | 中文字幕在线视频一区二区三区 | 日韩小视频 | 天天干一干 | 综合网av | 欧美日韩久 | 色.com| av福利网址导航大全 | 黄网站色视频免费观看 | 91精品播放 | 欧美一二在线 | 日韩大片在线 | 欧美精品成人在线 | 伊人射| 日韩理论在线视频 | 成人免费一区二区三区在线观看 | 中文字幕在线高清 | 久久精选 | 天天爽人人爽 | 极品久久久 | 成人av一级片 | 亚洲精品久久久久999中文字幕 | 久久久久久黄色 | 成人毛片在线视频 | 狠狠操欧美 | 日本精品在线看 | 在线欧美最极品的av | 成人在线黄色 | 在线视频中文字幕一区 | av蜜桃在线 | 亚洲国产午夜精品 | 日韩激情视频在线 | 黄色a视频免费 | 亚洲视频99 | 亚洲综合色播 | 国内一级片在线观看 | 最近中文字幕视频网 | 欧美精品久久久久a | 日日躁你夜夜躁你av蜜 | 不卡的av在线 | 亚洲精品视频久久 | 久久国产电影院 | av成人动漫 | 天天色天天干天天色 | 特黄免费av| 三级在线国产 | 麻花传媒mv免费观看 | 亚洲精品综合欧美二区变态 | 欧美伦理一区二区三区 | 日韩欧美在线视频一区二区三区 | 久久久亚洲国产精品麻豆综合天堂 | 亚洲免费在线视频 | 国产香蕉视频 | 在线观看黄色的网站 | 午夜视频在线观看网站 | 国产精品视频永久免费播放 | 色爱成人网 | 国产一区在线观看免费 | 国产不卡av在线 | 在线看成人 | 日韩高清www | 日韩精品专区 | 国产精品免费不卡 | 日韩在线视频观看 | 亚洲一区二区三区四区精品 | 成人av一区二区兰花在线播放 | 日韩福利在线观看 | av片中文字幕 | 91精品久 | 国产夫妻性生活自拍 | 欧美色综合| 国产色在线视频 | 999色视频 | 日日干网 | 日本久久高清视频 | 国产不卡在线播放 | 丁香花五月 | 精品麻豆| 在线观看av片 | 免费久久网站 | 人人射人人射 | 国产黄视频在线观看 | 精品久久久成人 | 91av免费在线观看 | 日日干天天爽 | 中文字幕久久精品 | 69精品视频| 97免费在线观看视频 | 在线观看av中文字幕 | 911久久香蕉国产线看观看 | 亚洲精品久久久久www | 在线观看亚洲精品视频 | 奇米影音四色 | 国产精品久久久久免费 | 国产精品国产毛片 | 日韩精品一区二区三区免费视频观看 | 欧美亚洲xxx | 久久黄色成人 | 毛片99 | 91成人免费 | 欧美日韩国产综合一区二区 | 一区国产精品 | 99久久99| 日本二区三区在线 | 国产中文字幕三区 | 国产精品毛片久久久久久久久久99999999 | 激情开心| 欧美日韩在线精品一区二区 | 99精品久久久久久久久久综合 | 在线小视频你懂得 | 成人精品视频久久久久 | 2022国产精品视频 | 欧美福利在线播放 | 黄色a在线观看 | 欧洲在线免费视频 | 日产乱码一二三区别免费 | 欧美日韩高清国产 | 91av在线视频免费观看 | 97在线免费视频观看 | 国产69精品久久久久99尤 | 国产明星视频三级a三级点| 69久久久| 亚洲欧美日韩一级 | 国产成人精品久久久 | 国产精品女主播一区二区三区 | 激情五月五月婷婷 | www.eeuss影院av撸 | 91精品国自产在线观看欧美 | 久久成人国产精品一区二区 | 国产成人免费在线 | 人人爱人人射 | av直接看| 丁香五月亚洲综合在线 | 亚洲专区路线二 | 97超碰色偷偷 | 69性欧美 | 亚洲成人黄色av | 久久精品亚洲国产 | 91视频传媒 | 成人国产精品一区二区 | 精品乱码一区二区三四区 | 爱干视频 | av在线最新 | 国内精品久久久久久久久久 | 五月激情综合婷婷 | 91在线免费观看国产 | 91av在线免费播放 | 欧美一区日韩一区 | 国产成人三级一区二区在线观看一 | 免费看污片 | 国产在线v| 国产久草在线观看 | 久久久久成人精品免费播放动漫 | 韩国精品一区二区三区六区色诱 | 免费av影视 | 一区二区在线影院 | 欧美在线观看视频一区二区 | 四虎国产视频 | 中文字幕 成人 | 免费日韩一区二区 | 国际精品网 | 一区二区欧美在线观看 | 中文字幕 欧美性 | 日韩av成人在线观看 | 一区 在线观看 | 九九免费视频 | 一级特黄aaa大片在线观看 | 国产精品视频999 | 欧美综合久久久 | 91精品一区二区在线观看 | 亚洲电影在线看 | 51精品国自产在线 | 午夜影院在线观看18 | 三级在线国产 | 91看片在线看片 | 日本不卡视频 | 久久国产精品久久w女人spa | 天天草天天爽 | 黄色小网站免费看 | 亚洲国产精品一区二区尤物区 | 国产成人一区在线 | 国产精品久久久毛片 | 最近中文字幕大全中文字幕免费 | 99视频在线精品 | 日日操日日插 | 亚洲人成网站精品片在线观看 | 婷婷av网站 | 久久艹国产视频 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 玖玖色在线观看 | 欧美综合久久 | 婷婷干五月 | 欧美日本中文字幕 | 四虎影视8848aamm | 夜夜操狠狠操 | 国产亚洲精品久久久久久久久久 | 亚洲免费永久精品国产 | 国产一级免费av | 久久不色 | 狠狠的日日 | 国产午夜视频在线观看 | www.精选视频.com | 五月天六月丁香 | 婷婷久久五月天 | 91x色 | 欧美爽爽爽 | av成年人电影 | 国产精品xxxx18a99 | 亚洲精品欧美视频 | 午夜精品一区二区三区视频免费看 | 啪啪午夜免费 | 中文字幕乱视频 | 欧美在线一 | 天天草天天插 | 免费成人在线观看视频 | 91亚洲欧美激情 | 国产成人久久 | 在线直播av| 91豆花在线观看 | 免费在线精品视频 | 在线观看一区 | 美女网站视频久久 | 一区二区视频免费在线观看 | 黄在线免费观看 | 欧美夫妻性生活电影 | 精品99久久久久久 | 国产精品久久电影观看 | 在线免费视 | 狠狠干夜夜 | 成人在线视频观看 | 欧美激情精品久久久久久变态 | 久久久久久久久久久免费av | 中文字幕有码在线观看 | 亚洲视频一级 | 国产精品久久精品 | 99精品欧美一区二区蜜桃免费 | 国产裸体bbb视频 | 粉嫩av一区二区三区四区五区 | 亚洲免费公开视频 | 国外成人在线视频网站 | 超碰在线网 | 91精品福利在线 | 亚洲专区一二三 | 丁香在线观看完整电影视频 | 成人黄色电影在线观看 | 美女视频黄,久久 | 日韩av一区二区三区四区 | 久久成熟| 五月婷婷在线视频观看 | 日韩激情小视频 | 中文字幕av免费观看 | 国产精品v a免费视频 | 美女国产| 色丁香久久 | 激情久久网 | 制服丝袜成人在线 | 精品亚洲免a| 国产亚洲一级高清 | 国产成人精品综合久久久久99 | 伊人午夜视频 | 欧美日韩一区二区视频在线观看 | av在线免费播放 | 国产999免费视频 | 十八岁以下禁止观看的1000个网站 | 精品久久久久久国产偷窥 | 久久这里精品视频 | 99精品视频免费在线观看 | 日韩av中文字幕在线 | 国产 精品 资源 | 玖玖玖国产精品 | 久久久久久黄色 | 亚洲黄色av一区 | 国产精品美女毛片真酒店 | 国产午夜av | a在线观看免费视频 | 在线观看久久 | 中文字幕在线看视频国产中文版 | 久久综合婷婷综合 | 亚洲成人av片 | 国产黄色免费在线观看 | 欧美久久综合 | 久久国产成人午夜av影院潦草 | 久久免费视频8 | 久久免费观看少妇a级毛片 久久久久成人免费 | 超碰97人人爱| 99精品在线免费 | 91 在线视频 | 久久精品三级 | 综合久色| 国产香蕉97碰碰碰视频在线观看 | 青青河边草观看完整版高清 | 国产一级高清 | 成人av教育 | 国产麻豆精品传媒av国产下载 | 亚洲精品国产成人 | 国产v在线播放 | 一二三精品视频 | 中文伊人 | 亚洲成人第一区 | 在线观看亚洲国产 | 国产精品毛片一区视频播 | 在线看岛国av | 久久人操 | 在线黄网站| 超碰公开在线观看 | 五月婷婷播播 | 国产黄色片网站 | 六月丁香综合网 | 日韩成人黄色 | wwwwww色| 国产免费精彩视频 | 国产精品门事件 | 天堂av在线| 久草精品视频在线播放 | 国内精品99 | 天天躁日日| 国产精品永久在线观看 | www.色的 | 亚洲无线视频 | 精品超碰 | 日韩高清不卡一区二区三区 | 毛片网在线观看 | 国产中文视频 | 99久久久国产精品免费99 | 91精品国产欧美一区二区 | av在线免费网 | 天天色草 | 久久精品免费观看 | 97看片| 91成年人网站 | 免费在线观看av片 | 国产精品一区免费看8c0m | 午夜黄网| 国产精品福利无圣光在线一区 | 五月婷婷国产 | 精品视频免费观看 | 天天色天天操综合 | 日本一区二区三区视频在线播放 | 黄色大片日本免费大片 | 久久综合免费视频 | 久久在线精品 | 成人四虎| 人人插人人玩 | 在线网站黄 | 亚洲最大av网 | 日韩精品影视 | 国产欧美在线一区二区三区 | 国产精品18久久久久久久网站 | www.激情五月.com | 99久高清在线观看视频99精品热在线观看视频 | 久久99久久99精品免费看小说 | 久久精品国产一区二区三 | 伊人六月 | 国产麻豆精品久久一二三 | 高潮久久久久久久久 | 亚洲精品人人 | 久久综合色综合88 | 天天色天天 | 亚洲精品在线观看不卡 | 四虎影视成人永久免费观看视频 | 91视频com| 国产成人精品午夜在线播放 | 成人观看视频 | 成人av一二三区 | 久久久久女人精品毛片 | 中文字幕在线不卡国产视频 | 日韩成人免费在线观看 | 97超碰色 | 日批在线观看 | 美女免费视频网站 | 日韩毛片在线免费观看 | 在线观看不卡视频 | 久久精品国产精品亚洲 | 午夜精品久久一牛影视 | 99这里只有 | 日本黄色大片免费看 | 在线免费观看av网站 | 亚洲男女精品 | 欧美精品在线观看一区 | 久久国产精品99久久人人澡 | 97超碰免费在线观看 | 麻豆免费看片 | 在线蜜桃视频 | 手机看片久久 | 日韩中文久久 | 日韩av影片在线观看 | 国产亚洲精品bv在线观看 | 久久av免费电影 | 五月天亚洲婷婷 | 久久久电影网站 | 狂野欧美激情性xxxx欧美 | 国产成人久久av免费高清密臂 | 久草在线最新 | 欧美精品被 | www久久| 不卡日韩av | 久草| 91久久奴性调教 | 国产精品一区免费看8c0m | 日本精品一二区 | 日本最新中文字幕 | 狠狠狠狠狠操 | 亚洲视频 中文字幕 | 久久久高清免费视频 | 日韩av网站在线播放 | 久草国产视频 | 午夜私人影院 | 免费合欢视频成人app | 中文字幕在线看视频 | 国产精品福利午夜在线观看 | 91九色在线视频观看 | 精品久久免费看 | 日韩一级黄色片 | 五月亚洲| 亚洲欧洲成人精品av97 | 日韩成年视频 | 久久综合九色综合久久久精品综合 | 狠狠操.com | 精品国产一区二区三区免费 | 日韩字幕 | 美女黄久久 | 久久久久久免费 | 久久久久久久久久久久av | 国产中文字幕在线 | 中文日韩在线视频 | 福利电影一区二区 | 精品色综合 | 国产三级香港三韩国三级 | 亚洲国产高清视频 | 天堂av免费观看 | 日韩黄色大片在线观看 | 久久人91精品久久久久久不卡 | 久久久国产精品视频 | 亚洲电影成人 | 日韩在线观看一区二区 | 黄色在线免费观看网站 | 日韩av在线免费看 | 在线播放日韩 | 四虎在线免费观看视频 | 国产资源精品 | 色999在线 | 精品免费国产一区二区三区四区 | 欧美日高清视频 | 欧美大片www | 激情伊人五月天 | 天天操夜夜想 | 久久天天操 | 日本婷婷色 | 精品少妇一区二区三区在线 | 日韩av三区 | 久久精品国产亚洲aⅴ | 色偷偷网站视频 | 爱爱av网站| 99产精品成人啪免费网站 | 青青草国产精品 | 久久视讯 | av片在线观看免费 | 91看成人 | 久久久夜色 | 亚洲精品 在线视频 | 五月天色中色 | 涩涩网站在线观看 | 最新影院| 久久成年人网站 | 欧美国产日韩激情 | 99国产精品久久久久老师 | 亚洲资源在线 | 久久精品国产亚洲精品 | 丁香婷婷深情五月亚洲 | 色婷婷播放 | 国产色视频网站 | 久久影视网 | 国产区在线视频 | 免费观看国产精品 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 久久久午夜剧场 | 亚洲资源一区 | 91精品国产欧美一区二区成人 | 91精品久久久久久久久久久久久 | 日韩av高清 | 国产 日韩 欧美 中文 在线播放 | 欧美日韩精品在线观看 | 天天操天天色综合 | 中文字幕在线观看第三页 | 婷婷五月色综合 | 草久中文字幕 | 久草com | 在线免费观看国产视频 | 99这里有精品 | 一区二区三区免费在线播放 | 婷婷六月综合亚洲 | 91免费在线视频 | 国产不卡片 | 99热在线这里只有精品 | 亚洲综合少妇 | 欧美福利片在线观看 | 亚洲美女在线国产 | 久久综合狠狠综合久久综合88 | 欧美在线观看禁18 | 韩日精品中文字幕 | 国产精品国产三级国产aⅴ入口 | 亚洲成人精品影院 | av中文字幕在线免费观看 | 狠狠色综合网站久久久久久久 | 国产精品视频免费 | 丁香花中文在线免费观看 | 一本一本久久aa综合精品 | 久久视频国产精品免费视频在线 | 久久99亚洲精品久久 | 国产成人精品一区二区三区网站观看 | 国产91精品一区二区 | 国产精品成人a免费观看 | 超碰公开在线观看 | av中文在线播放 | 婷婷精品国产一区二区三区日韩 | 国产精品美女免费 | www.久热| 蜜臀av免费一区二区三区 | 免费观看成年人视频 | 麻豆一区二区三区视频 | 国产美女被啪进深处喷白浆视频 | 亚洲国产欧洲综合997久久, | 在线观看色网站 | 亚洲激情视频在线 | 一区二区不卡 | 亚洲精品久久久久www | 欧美日韩视频在线观看免费 | 丁香久久久 | 91丝袜美腿 | 一区二区三区四区精品 | 人人澡人 | 久久99国产综合精品 | 婷婷视频在线播放 | 色先锋av资源中文字幕 | 丁香导航 | 91在线观看欧美日韩 | 91精彩视频在线观看 | 久草视频免费播放 | 在线a人片免费观看视频 | 久久香蕉国产精品麻豆粉嫩av | 久久av在线播放 | 亚洲欧美国产精品va在线观看 | 日本aa在线 | 日韩高清三区 | 国际精品久久久 | 国产中年夫妇高潮精品视频 | 国产伦精品一区二区三区… | 五月天婷婷丁香花 | 亚洲人成人在线 | 99国产视频 | 亚洲精品久久久久久国 | 午夜三级影院 | 欧美激情视频一区二区三区 | 亚洲免费在线观看视频 | 国产精品久久片 | 精品一区二区三区久久久 | 日本狠狠色 | 国产一区在线视频播放 | 综合色狠狠| 国精产品满18岁在线 | 亚洲午夜av | 成人av一区二区在线观看 | 91成品人影院 | www国产亚洲精品久久麻豆 | 日b黄色片| 日韩高清在线看 | 激情综合五月婷婷 | 九九免费在线观看视频 | 国内精品久久天天躁人人爽 | 国产中文字幕在线播放 | 日本高清中文字幕有码在线 | 麻豆国产精品视频 | 欧美色精品天天在线观看视频 | 又黄又爽又湿又无遮挡的在线视频 | 国产黄色片免费在线观看 | 国产剧情一区二区 | 国产成人精品久久 | 国产精品久久久久久影院 | 亚洲视频在线播放 | 欧美极品少妇xxxx | 免费高清在线视频一区· | av再线观看 | 粉嫩av一区二区三区四区 | 超碰97成人 | 免费男女羞羞的视频网站中文字幕 | 亚洲成免费 | 看黄色.com| 国产精品成人免费精品自在线观看 | 久久久久久久久久亚洲精品 | 最近2019好看的中文字幕免费 | 日韩在线第一区 | 日韩大片在线播放 | 人人澡人摸人人添学生av | 日本三级久久久 | 久久99久久99精品 | 国产黄视频在线观看 | 中文字幕激情 | 久久se视频 | 免费高清影视 | 日韩精品一区二区三区免费观看 | 日韩手机视频 | 亚洲在线视频网站 | 久久九精品 | 国产一区在线免费 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 99婷婷狠狠成为人免费视频 | 国产999精品久久久影片官网 | 911精品美国片911久久久 | 五月天久久久 | 天天操天天色天天 | 日韩精品免费一区二区三区 | 亚洲成人午夜在线 | 国产午夜精品一区二区三区嫩草 | 国产在线观看免费av | 亚洲1区在线 | 在线播放你懂 | 激情婷婷在线观看 | 在线三级播放 | 久久这里只有精品首页 | 亚洲老妇xxxxxx | 久久在线视频精品 | 日韩精品一区二区在线视频 | 超碰免费在线公开 | 开心激情五月婷婷 | 精品国产一区二区三区不卡 | 亚洲精品99久久久久中文字幕 | 中文字幕123区 | 午夜在线观看一区 | 中文字幕在线免费观看视频 | 天堂av免费在线 | 99热日本 | 欧美精品一区二区免费 | 天堂av在线 | 伊人手机在线 | 日日夜夜天天久久 | 国产精品高清一区二区三区 | 成人久久18免费 | 五月天欧美精品 | 久久激五月天综合精品 | 亚洲成a人片综合在线 | 狠狠干免费 | 中文字幕中文字幕 | 久久久久久欧美二区电影网 | 欧美一级欧美一级 | 天天艹天天操 | 久久精品免费电影 | 一二三精品视频 | 在线成人一区二区 | 中文在线字幕免费观 | 午夜久久久久久久久 | 成人高清av在线 | 亚洲成人软件 | 在线国产99 | 国产精品入口66mio女同 | 超碰公开97 | 欧美一级久久久久 | 成人av播放| 精久久久久 | 国产.精品.日韩.另类.中文.在线.播放 | 麻豆一二 | 国产网站色 | 99视频这里有精品 | 天天艹| 婷婷丁香社区 | 天天综合天天做 | 国产精品久久久久久久久久免费看 | 久久成人在线 | av黄在线播放 | 粉嫩一二三区 | 亚洲日本欧美 | 99久久精品视频免费 | 激情综合网天天干 | 久久久精品免费看 | 欧美精品一区二区在线观看 | 国产在线精品二区 | 免费a v在线 | 中文字幕一区二区三区视频 | 久久特级毛片 | 久久久亚洲影院 | 一色屋精品视频在线观看 | 欧美日韩国产区 | 在线免费试看 | 深夜精品福利 | 国产精品国产三级国产aⅴ9色 | 欧美性色黄大片在线观看 | 久久精品亚洲国产 | 国产精品久久久视频 | 成人av在线影院 | 欧美视频在线观看免费网址 | 国模视频一区二区三区 | 欧美性久久久久久 | 香蕉国产91 | 亚洲人成影院在线 | 深夜国产福利 | 成人动漫精品一区二区 | 国产一级黄色免费看 | 99热99热| 97国产一区 | 国产精品二区在线观看 | 国产成人黄色 | 黄色毛片观看 | 国产精品黄色影片导航在线观看 | 午夜精品久久久久久久99热影院 | 免费看的黄色片 | 国产日产精品一区二区三区四区的观看方式 | 最近中文字幕国语免费av | 亚洲视频网站在线观看 | 日韩欧美69 | 国产一区二区电影在线观看 | 国产福利资源 | 天天色宗合 | 免费av 在线 | 日韩在线观看网址 | 视频99爱 | 久久伊人色综合 | 久久久久久久免费 | 国内精品美女在线观看 | 久草网视频 | 91九色在线视频 | 日日干天天爽 | 五月综合网站 | 日本精品一二区 | 超级碰碰碰免费视频 | 久久99精品热在线观看 | 欧美日韩免费观看一区=区三区 | 国产精品扒开做爽爽的视频 | 91精品国产99久久久久久红楼 | 国产a国产a国产a | 996久久国产精品线观看 | 久二影院 | 97超级碰碰碰视频在线观看 | 丁香六月婷婷开心 | 手机av在线免费观看 | 天堂在线一区 | 久久人人做| 在线观看中文字幕视频 | 午夜精品视频免费在线观看 | 国产高清网站 | 成人黄色毛片视频 | 成人性生交视频 | 69欧美视频 | 国产一级电影 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 亚洲三级精品 | 51久久夜色精品国产麻豆 | 国产成人精品在线观看 | 国产一级精品在线观看 | 激情综合网五月 | 深夜免费福利在线 | 亚洲天堂精品 | 国产亚洲资源 | 91九色porn在线资源 | 99久久精品免费看国产免费软件 | 精品国产一区二区三区四区在线观看 | 日韩欧美成人网 | 一区二区三区在线免费播放 | 91网页版免费观看 | 欧美成人xxxxxxxx| 欧美日本不卡视频 | 91视频啊啊啊 | 欧美成人xxx | 精品久久久精品 | 日本精品视频在线播放 | 91看片淫黄大片一级在线观看 | 国产精品国内免费一区二区三区 | 在线观看日本高清mv视频 | 婷婷激情综合 | 天天操天天爱天天干 | 成人 亚洲 欧美 | 国产精品中文字幕在线观看 | 激情丁香 | 国产精品一区免费在线观看 | 久久99精品久久只有精品 | 精品国产成人在线影院 | 91精品少妇偷拍99 | 中文字幕在线观看你懂的 | 久操97 | 最近免费中文字幕大全高清10 | 亚洲精品乱码久久久久久蜜桃91 | 啪啪精品 | 91在线在线观看 | 美女视频黄是免费的 | 96国产精品视频 | 日韩精品在线一区 | 久久精品99久久久久久 | 国产精品久久久久永久免费 | 日韩av免费观看网站 | 香蕉网在线 | 国产精品一区在线观看你懂的 | 开心色停停 | 不卡av电影在线观看 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 免费看黄的视频 | 在线观看视频一区二区三区 |