@@ -156,6 +156,8 @@ void InfoHandler::applyInfoToView(SharedAnalysisInfo info, BinaryViewRef bv)
156
156
defineReference (bv, sr->address , sr->nameAddress );
157
157
}
158
158
159
+ unsigned totalMethods = 0 ;
160
+
159
161
// Create data variables and symbols for the analyzed classes.
160
162
for (const auto & ci : info->classes ) {
161
163
defineVariable (bv, ci.listPointer , taggedPointerType);
@@ -181,6 +183,8 @@ void InfoHandler::applyInfoToView(SharedAnalysisInfo info, BinaryViewRef bv)
181
183
182
184
// Create data variables for each method in the method list.
183
185
for (const auto & mi : ci.methodList .methods ) {
186
+ ++totalMethods;
187
+
184
188
defineVariable (bv, mi.address , methodType);
185
189
defineSymbol (bv, mi.address , sanitizeSelector (mi.selector ), " mt_" );
186
190
defineVariable (bv, mi.typeAddress , stringType (mi.type .size ()));
@@ -200,4 +204,10 @@ void InfoHandler::applyInfoToView(SharedAnalysisInfo info, BinaryViewRef bv)
200
204
201
205
bv->CommitUndoActions ();
202
206
bv->UpdateAnalysis ();
207
+
208
+ const auto log = BinaryNinja::LogRegistry::GetLogger (" ObjectiveNinja" );
209
+ log->LogInfo (" Structure analysis complete" );
210
+ log->LogInfo (" Found %d classes, %d methods, %d selector references" ,
211
+ info->classes .size (), totalMethods, info->selectorRefs .size ());
212
+ log->LogInfo (" Found %d CFString instances" , info->cfStrings .size ());
203
213
}
0 commit comments