void
hook_dlopen() {
void
*symbol = NULL;
if
(find_symbol(
"__dl__Z9do_dlopenPKciPK17android_dlextinfoPKv"
,
"linker"
, (unsigned
long
*)&symbol) == 0) {
ZzHookReplace(symbol, (
void
*)&fake_dlopen_V24, (
void
**)&real_dlopen_V24);
}
else
if
(find_symbol(
"__dl__Z9do_dlopenPKciPK17android_dlextinfoPv"
,
"linker"
, (unsigned
long
*)&symbol) == 0) {
ZzHookReplace(symbol, (
void
*)&fake_dlopen_V24, (
void
**)&real_dlopen_V24);
}
else
if
(find_symbol(
"__dl__ZL10dlopen_extPKciPK17android_dlextinfoPv"
,
"linker"
, (unsigned
long
*)&symbol) == 0) {
ZzHookReplace(symbol, (
void
*)&fake_dlopen_V24, (
void
**)&real_dlopen_V24);
}
else
if
(find_symbol(
"__dl__Z20__android_dlopen_extPKciPK17android_dlextinfoPKv"
,
"linker"
, (unsigned
long
*)&symbol) == 0) {
ZzHookReplace(symbol, (
void
*)&fake_dlopen_V24, (
void
**)&real_dlopen_V24);
}
else
if
(find_symbol(
"__dl___loader_android_dlopen_ext"
,
"linker"
, (unsigned
long
*)&symbol) == 0) {
ZzHookReplace(symbol, (
void
*)&fake_dlopen_V24, (
void
**)&real_dlopen_V24);
}
else
if
(find_symbol(
"__dl__Z9do_dlopenPKciPK17android_dlextinfo"
,
"linker"
, (unsigned
long
*)&symbol) == 0) {
ZzHookReplace(symbol, (
void
*)&fake_dlopen_V19, (
void
**)&real_dlopen_V19);
}
else
if
(find_symbol(
"__dl__Z8__dlopenPKciPKv"
,
"linker"
, (unsigned
long
*)&symbol) == 0) {
ZzHookReplace(symbol, (
void
*)&fake_dlopen_V19, (
void
**)&real_dlopen_V19);
}
else
if
(find_symbol(
"__dl___loader_dlopen"
,
"linker"
, (unsigned
long
*)&symbol) == 0) {
ZzHookReplace(symbol, (
void
*)&fake_dlopen_V19, (
void
**)&real_dlopen_V19);
}
else
if
(find_symbol(
"__dl_dlopen"
,
"linker"
, (unsigned
long
*)&symbol) == 0) {
ZzHookReplace(symbol, (
void
*)&fake_dlopen, (
void
**)&real_dlopen);
}
else
{
ZzHookReplace((
void
*)dlopen, (
void
*)&fake_dlopen, (
void
**)&real_dlopen);
}
}