Friday, 10 April 2015

Smart Lock Part 1

After my previous post about the mechanics of the smart lock, I need to realize how to do the electronics stuff. I got the TI cc2530 chips, which are really low power Zigbee radio chips, perfect for the door lock because it running on batteries. My goal for the smart lock software:

3D Printing Is Cool!

I working these days on a simple smart home project. My first device in this project is the door lock.
I am working on this project after I got locked down in my home. I forgot the home key in the car and my parents locked the door when going to work. At this moment I came to a conclusion that door keys are stupid, we got phones and fingerprints, we do not need keys anymore,
So to solve this problem I searched for some electronic door lock. Is my country, almost all the doors come from specific manufacture, this manufacturer produce the locks in a really unique way that make every smart lock product I found incompatible.  I decided to use a 3d printer to print a piece that will wrap the cylinder key and will "export" gear teeth that I can wrap with a pulley.

Patching ARM Code During Runtime

I always found some boring ways to spend my free time, few months back at the holidays in Israel I got some free time from work so I decided to make a BOT for some Android game (for research only purpose). The game, as almost any large Android game, is written in native c++. The game didn't use any known framework and wrote in plain c++, meaning no symbols and hardcore reversing... I burn all my time in reversing the code (about few megabytes of compiled ARM code, not a simple task). Finally, I reversed all their communication protocol (multiplayer game), in-game messaging mechanism, and got a GDB script which can manually do all the BOT features. I need to make a blog post about reversing this game but maybe somewhere at the future. For now, lets focus on what I did afterward, so I got this gdb script which can do anything I want, but gdb script is no fun.. I mean what happen when you want to show off your work? you can't just say "wait for me to open my gdb in my laptop and attach to the app...." you want some pre-compiled Android APK that does everything.