
Frida 기반 도구로, Cheat Engine의 MonoDataCollector를 Android와 iOS로 이식하여 모바일 앱의 런타임 Mono/IL2CPP 데이터 수집 및 메모리 검사를 가능하게 합니다.
ce의 monodatacollector를 android/ios로 포팅.
CEVersion 7.4.2 이상에서 동작이 확인되었습니다.
python 라이브러리를 설치합니다.
pip install pywin32
autorun/monoscript.lua 수정(CE가 Mono를 유효한 것으로 인식하도록 설정)
--[[local injectResult, injectError=injectLibrary(getAutorunPath()..libfolder..pathsep..dllname, skipsymbols)
if not injectResult then
if injectError then
print(translate("Failure injecting the MonoDatacollector library"..":"..injectError))
else
print(translate("Failure injecting the MonoDatacollector library. No error given"))
end
return 0
end
if (getOperatingSystem()==0) and (getAddressSafe("MDC_ServerPipe")==nil) then
waitForExports()
if getAddressSafe("MDC_ServerPipe")==nil then
print("DLL Injection failed or invalid DLL version")
return 0
end
end]]
function mono_OpenProcessMT()
-- print("mono_OpenProcessMT")
--enumModules is faster than getAddress at OpenProcess time (No waiting for all symbols to be loaded first)
local usesmono=true--false
기기에서 frida-server를 시작하고 애플리케이션을 스폰합니다.
python main.py com.DefaultCompany.Sample
ceserver를 시작하고 실행한 애플리케이션을 선택합니다.
adb forward tcp:52736 tcp:52736
su -c ./ceserver
CE에서 Mono 설정
Mono => Activate mono features
이를 지정하면 인수에 대상 앱의 이름을 지정할 필요가 없습니다.
android:Android
ios:iOS
spawn:스폰 모드
attach:어태치 모드
네트워크를 통해 frida-server에 연결합니다.
예:
./frida-server -l 0.0.0.0:12345
frida_server_ip:"192.168.11.3:12345"