Characterizing the Control Logic of Web Applications’ User Interfaces

  • Carlos Eduardo Silva
  • José Creissac Campos
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8584)


In order to develop an hybrid approach to the Reverse Engineer of Web applications, we need first to understand how much of the control logic of the user interface can be obtained from the analysis of event listeners. To that end, we have developed a tool that enables us to perform such analysis, and applied it to the implementation of the one thousand most widely used Websites (according to Alexa Top Sites). This paper describes our approach for analyzing the user interface layer of those Websites, and the results we got from the analysis. The conclusions drawn from the exercise will be used to guide the development of the proposed hybrid reverse engineering tool.


Web applications user interfaces reverse engineering 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Eilam, E.: Reversing: Secrets of Reverse Engineering. Wiley (2005)Google Scholar
  2. 2.
    Telea, A.C.: Reverse Engineering – Recent Advances and Applications. InTech (2012)Google Scholar
  3. 3.
    Mikkonen, T., Taivalsaari, A.: Web applications – spaghetti code for the 21st century. Technical Report SMLI TR-2007-166, Sun Microsystems (2007)Google Scholar
  4. 4.
    Silva, C.E.: Reverse engineering of rich internet applications. Master’s thesis, Universidade do Minho (2009)Google Scholar
  5. 5.
    Campos, J.C., Saraiva, J., Silva, C., Silva, J.C.: GUIsurfer: A reverse engineering framework for user interface software. In: Telea [2], ch.2, pp. 31–54Google Scholar
  6. 6.
    de Kleijn, R.: Learning Selenium: Hands-on tutorials to create a robust and maintainable test automation framework. Leanpub (2014)Google Scholar
  7. 7.
    Mesbah, A., van Deursen, A., Lenselink, S.: Crawling Ajax-based web applications through dynamic analysis of user interface state changes. ACM Transactions on the Web (TWEB) 6(1), 3:1–3:30 (2012)Google Scholar
  8. 8.
    Morgado, I.C., Paiva, A.C.R., Faria, J.P., Camacho, R.: GUI reverse engineering with machine learning. In: 2012 First International Workshop on Realizing AI Synergies in Software Engineering (RAISE), pp. 27–31. IEEE (June 2012)Google Scholar
  9. 9.
    Silva, C.E., Campos, J.C.: Combining static and dynamic analysis for the reverse engineering of web applications. In: Forbrig, P., Dewan, P., Harrison, M., Luyten, K., Santoro, C., Barbosa, S.D.J. (eds.) Proceedings of the 5th ACM SIGCHI Symposium on Engineering Interactive Computing Systems (EICS 2013), pp. 107–112. ACM (2013)Google Scholar
  10. 10.
    Jakob, J.: jQuery Compressed. Jenkov Aps (2011)Google Scholar
  11. 11.
    Schrittwieser, S., Katzenbeisser, S.: Code obfuscation against static and dynamic reverse engineering. In: Filler, T., Pevný, T., Craver, S., Ker, A. (eds.) IH 2011. LNCS, vol. 6958, pp. 270–284. Springer, Heidelberg (2011)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Carlos Eduardo Silva
    • 1
  • José Creissac Campos
    • 1
  1. 1.Departamento de InformáticaUniversidade do Minho & HASLab/INESC TECBragaPortugal

Personalised recommendations