Haré una pequeña explicación del minituto publicado por el gran den_po, sobre como portar constantes, y lo que no se explica
Herramientas:
IDA 5.x
sub/page finder (Plugin para IDA), adjunto
saveevents.elf, adjunto dentro del comprimido
1. Ejecutar saveevents.elf en el telefono y recuperar el archivo Events.txt que se genera
Dicho elf se ejecuta crea una base de ciertas contantes presentes en el dyn_cont, que sirven como guía para el resto..., luego se cierra solo
2. Abrir el firmware en IDA al cual se desea portar las constantes (evidente, como cuando habren para portar parches...)
Luego correr el getevents.idc (Edit->IDC File...), con el Event.txt
3. Correr el plugin y esperar a que termine el proceso
Primero deben pegar el plugin pagesub.plw en C:\...\IDA\Plguins y luego en el IDA ir a Edit->Plugins->sub/page finder
4. Abrir paralelamente en el IDA el firmware del cual se conoce las constantes, correr el plugin y esperar
He aquí la importancia de tener un dyn_const completo y bien portado: El del w850 gracias a IronMaster
5. Ahora deben ir a las direcciones para cada constante en ambos firmwares (lista abajo), comparar la estructura, encontrar las semejanzas y diferencias, y concluir los valores de las constantes
Aqui si nada esta escrito, solo la práctica les permitira acertar con los valores correctos
Aclaración: El plugin, busca estructuras de eventos en todo el firmware, etiquetandolas por evtlst_XXXXX
Al aplicar el archivo Events.txt con el *.idc y corren el plugin, lo que hace es "reconocer algunas de estas constantes (los valores que veran en color verde en el IDA), permitiendo "guiarse" para encontrar el resto de constantes
Lista de direcciones para las constantes:
CALLMANAGER_CALL_END_SET_CALLTIME_EVENT
evtlst_StandbyBook_Base
CALLMANAGER_KILL_CALLBOOK_EVENT
evtlst_DataBrowser_Base
evtlst_MSG_UI_Default
CAMERA_APPLICATION_START_EVENT
RESPONSE_CAMERA_APPLICATION_START
MEDIAPLAYER_APPLICATION_START_EVENT
RESPONSE_MEDIAPLAYER_APPLICATION_START
MISSED_CALL_EVENT
pg_InformBusy::PAGE_ENTER_EVENT
evtlst_MMTApplicationBook_Base
ONGOINGCALL_CALL_CONNECTED_EVENT
evtlst_SetupCall
ONGOINGCALL_CALL_START_EVENT
evtlst_SetupCall
evtlst_Manager_Base
evtlst_UICLH_OGCallBook_Base
evtlst_UICLH_OGCallBook_RetrieveHeld
evtlst_Diverting
evtlst_MTCall_Base
evtlst_InformCallWaiting
evtlst_InformVideoCallWaiting
evtlst_InformMissedCalls
ONGOINGCALL_SET_CALLCOST_EVENT
evtlst_UICLH_OGCallBook_Base
ONGOINGCALL_SET_CALLTIME_EVENT
evtlst_UICLH_OGCallBook_Base
ONGOINGCALL_SPEAKER_ONOFF_EVENT
evtlst_UICLH_OGCallBook_Base
ON_CALLMANAGER_EVENT
evtlst_VC_AnswerRecognition
SOUNDHANDLER_APPLICATION_START_EVENT
RESPONSE_SOUNDHANDLER_APPLICATION_START
UI_CONNECTIONMANAGER_SESSION_ESTABLISHED_EVENT
evtlst_UIConMgr_Default
UI_CONNECTIONMANAGER_SESSION_TERMINATE_EVENT
evtlst_UIConMgr_Default
UI_MEDIAPLAYER_NEXT_TRACK_EVENT
evtlst_MediaPlayer_Audio_Bk_Base
evtlst_MediaPlayer_Video_Base
UI_MEDIAPLAYER_PREV_TRACK_EVENT
evtlst_MediaPlayer_Audio_Bk_Base
evtlst_MediaPlayer_Video_Base
UI_SLEEPMODE_ACTIVATED_EVENT
evtlst_StandbyBook_Base
pg_Screensaver_Sleep::PAGE_ENTER_EVENT
EJEMPLO:
Ilustraré como portar la constante UI_CONNECTIONMANAGER_SESSION_ESTABLISHED_EVENT
del w850 al w810
Bueno, segun la lista debemos ir a evtlst_UIConMgr_Default, esta se encuentra en 45C58F60 (w850) y 445405C0 (W810):
tenemos:
W810
W850
El valor de la constante en el W850 es 10D4, en este caso afortunadamente es la primera del bloque, y facilmente concluimos que la que el valor para el w810 es CB9
Discuciones de este tema en [DISCUSION] DYN_CONST, como portar constantes - Top Sony
Marcadores