Reviews for ENEE459B
Information | Review |
---|---|
Yonghwi Kwon
ENEE459B Expecting a B+ Anonymous 01/01/2025 |
CANNOT RECOMMEND HIM ENOUGH. Definitely recommend him for any course. The professor is a good instructor and cares about his students. He gives plenty of opportunity to get your grade up. Besides him being a good professor, he is also a very nice person. Shared many stories with us and always tried to connect with his students. |
Yonghwi Kwon
ENEE459B Expecting an A+ Anonymous 12/15/2024 |
If you have any interest at all in taking this class with Dr. Kwon, just do it. I was worried about my advanced lab before taking this class, since I hated ENEE205's lab and especially ENEE245, but this class is nothing like those. There are only a few assignments across the semester, and while lab reports are required for the reverse engineering assignments, the fact that one wasn't due every week was a relief. The relative lack of assignments isn't the biggest deal, as each assignment is pretty substantial, and ramps up over the course of the semester. Project 2 is pretty challenging, and I didn't get to finish it due to being behind in other classes. However, in general, the class is fairly easy all things considered, especially for computer engineers. I still got an A+ in spite of not finishing project 2 due to the large amount of extra credit offered with the first optional assignment. Dr. Kwon is super nice and helpful, and while I didn't personally attend office hours, he seems helpful there too. Just note that you should be competent with C going into the class, and it's beneficial to at least be familiar with x86 assembly (either Intel or AT&T syntax). With that said, I do wish the class was structured better. Pretty much all of class time is taken up by lecture, including lab. Lecture time was taken up by general computer security and testing lectures, which were fine. I don't think Dr. Kwon is the best at presenting that information, as he kind of just walks through the slides, and doesn't use any demonstrations or figures outside of the slides to get his points across. Additionally, there are quizzes and the final exam related to lecture material, but they're pretty much nothing, as it's just a bunch of multiple choice questions. In all, the lecture portion was kind of just fine. I think it would be improved if Dr. Kwon had more experience teaching, since he's a very interesting guy outside of the slide presentations. My biggest issue with the class is the lab portion. Instead of getting hands-on experience with reverse engineering tools, Dr. Kwon just lectures more. The lab portion of the class would be significantly improved if, instead of lecture part two on topics almost completely unrelated to the lecture section, it was an opportunity to introduce us to a variety of reverse engineering tools and targets. These don't necessarily need to be for credit (in fact, they probably shouldn't), but it would give us an opportunity to practice more reverse engineering outside of the required assignments, which could actually help us with both the required assignments, and becoming better reverse engineers in general. Such targets could be ARM binaries, 32-bit binaries, Windows binaries, anti-debugging binaries, etc. While the class VM is Linux x86-64, optional assignments involving learning how to interact with different binary formats could be beneficial, and would most likely increase class engagement if they were implemented. Taking inspiration from CMSC398R (which I haven't taken), the class could have a semester-long CTF as an incentive to participate in these assignments, while not overhauling the overall class structure. As for the tools, we mostly just use Ghidra. While Ghidra is an extremely useful tool, it's just one tool in a reverse engineer's toolkit, and other tools may be useful for various purposes. For a couple of examples, I consistently used Cutter as an all-encompassing tool (patching, assembly graph view, ghidra and jsdec decompiler backends), the pwndbg GDB extension to confirm results I deduced from other analysis, and for one of the assignments, I used grep on the disassembly of a binary to narrow down which instructions affected a global variable. I'm just scratching the surface of potential here. One of the project premises is that Wireshark was used to capture packets sent to some unknown host, but we don't get any experience using Wireshark. Lab would be the perfect time to introduce these tools, even if they're not required to do well in the class. However, with everything I mentioned above, it mostly regards what the class could be, rather than what it is. Of course, one could learn most of this material in their own time, as there's CTFs consistently going on, so my complaints may be kind of pointless. As for what the class actually is, it's pretty decent. Once again, if you have any sort of interest in reverse engineering and still need an advanced lab, take this class with Dr. Kwon. |
Gang Qu
ENEE459B Expecting an A+ Anonymous 12/27/2021 |
There's a big separation between the lab and lecture components of this course. The lab component is taught by Booz Allen Hamilton employees and teaches you super practical skills in reverse engineering, using Ghidra. In lecture, Professor Qu talks about hardware security abstractly and assigns his own easy but sometimes time-consuming homework. |