worawit / blutter

Flutter Mobile Application Reverse Engineering Tool
MIT License
760 stars 128 forks source link

dart::RecordType has no member named "GetFieldNames" #3

Closed coderjingluo closed 9 months ago

coderjingluo commented 10 months ago

FAILED: CMakeFiles/blutter_dartvm2.19.6_android_arm64.dir/src/DartTypes.cpp.o /usr/bin/c++ -DDART_COMPRESSED_POINTERS -DDART_PRECOMPILED_RUNTIME -DDART_TARGET_OS_ANDROID -DDART_TARGET_OS_WINDOWS_UWP -DEXCLUDE_CFE_AND_KERNEL_PLATFORM -DFRIDA_TEMPLATE_DIR=\"/home/x1a0/Reserve/blutter/scripts\" -DHAS_RECORD_TYPE -DHAS_TYPE_REF -DNDEBUG -DPRODUCT -DTARGET_ARCH_ARM64 -DU_USING_ICU_NAMESPACE=0 -D_HAS_EXCEPTIONS=0 -I/usr/include/capstone -isystem /home/x1a0/Reserve/blutter/packages/include/dartvm2.19.6 -O3 -DNDEBUG -std=c++20 -O3 -fno-rtti -fvisibility=hidden -fvisibility-inlines-hidden -fno-omit-frame-pointer -Winvalid-pch -include /home/x1a0/Reserve/blutter/build/blutter_dartvm2.19.6_android_arm64/CMakeFiles/blutter_dartvm2.19.6_android_arm64.dir/cmake_pch.hxx -MD -MT CMakeFiles/blutter_dartvm2.19.6_android_arm64.dir/src/DartTypes.cpp.o -MF CMakeFiles/blutter_dartvm2.19.6_android_arm64.dir/src/DartTypes.cpp.o.d -o CMakeFiles/blutter_dartvm2.19.6_android_arm64.dir/src/DartTypes.cpp.o -c /home/x1a0/Reserve/blutter/blutter/src/DartTypes.cpp /home/x1a0/Reserve/blutter/blutter/src/DartTypes.cpp: In member function ‘DartRecordType* DartTypeDb::FindOrAdd(dart::RecordTypePtr)’: /home/x1a0/Reserve/blutter/blutter/src/DartTypes.cpp:201:72: error: ‘const class dart::RecordType’ has no member named ‘GetFieldNames’; did you mean ‘SetFieldNameAt’? 201 | const auto& field_names = dart::Array::Handle(zone, recordType.GetFieldNames(thread)); | ^~~~~ | SetFieldNameAt [14/22] Building CXX object CMakeFiles/blutter_dartvm2.19.6_android_arm64.dir/src/Disassembler.cpp.o ninja: build stopped: subcommand failed.

worawit commented 10 months ago

Just fixed it in latest commit. I did not expect RecordType is added since Dart 2.19 (the official doc said Records since Dart 3.0) but it is a incomplete one.

coderjingluo commented 10 months ago

I have to say, your project is so great. What has been updated from the original version to the current version?

coderjingluo commented 10 months ago

I am currently using the originally submitted version

coderjingluo commented 10 months ago

image Why does this happen?

worawit commented 10 months ago

Because I am still not implement dumping object of many internal classes in frida script. Sentinel is placeholder object for uninitialized object. Closure is basically function pointer with call arguments