// 根据BundleID获取进程PID
// IDA出来的,很简单 就写正规代码了,自己抄
int __fastcall sub_132944(int BundleId, int pid)
{
int _BundleId; // r5@1
int _pid; // r4@1
void *v4; // r0@1
void *SBSProcessIDForDisplayIdentifier; // r2@3
int result; // r0@4
_BundleId = BundleId;
_pid = pid;
v4 = (void *)dword_1BAABC;
if ( (dword_1BAABC
|| (v4 = dlopen("/System/Library/PrivateFrameworks/SpringBoardServices.framework/SpringBoardServices", 1),
(dword_1BAABC = (int)v4) != 0))
&& (SBSProcessIDForDisplayIdentifier = dlsym(v4, "SBSProcessIDForDisplayIdentifier")) != 0 )
result = ((int (__fastcall *)(int, int))SBSProcessIDForDisplayIdentifier)(_BundleId, _pid);
else
result = 0;
return result;
}
发表评论