9

I am aware that there are programs out there like lojack for laptops that get installed on the BIOS, but I'm still a little confused. When reading about lojack, it seems to me that they can't fully located the laptop's location until the user logs in and tries to access the internet. So I'm thinking that it's a BIOS application so that it wouldn't matter if the thief reformats the HD.

So my question is, does anyone have any ideas of how an internet enables BIOS application would be written. I'm not looking for full answers -- just ideas or resources to get started. For example, is such a thing written in assembly? Once one such app is written, how does it get transfered to the BIOS. Does the BIOS program itself recognize that there is an internet connection (when the thief logs on to the OS). Or upon logon, does additional processes get spawned? Are there any resources/websites that anyone can direct me too?

SideFX
  • 839
  • 1
  • 12
  • 34

4 Answers4

8

You didn't mention whether you were interested in legacy BIOS or EFI BIOS, but I would mention that with EFI there is the capability of writing EFI applications. See Intel Press:

Harnessing the UEFI Shell

The EFI Application toolkit comes with a complete TCP/IP network stack:
http://www.intel.com/technology/efi/toolkit_overview.htm

More at tianocore.org

William Leara
  • 10,595
  • 4
  • 36
  • 58
  • So with the UEFI solution, would I need a 3rd party or can I get an embedded program up an running solely by myself? Also, say if I am interest in legacy BIOS - is it still possible to create a compatible embedded program? – SideFX Mar 23 '11 at 14:33
  • 1
    With UEFI you could write your own application, using the EDK from tianocore.org. Regarding legacy BIOS -- do you have a legacy BIOS code base? It is unlikely you do, as legacy BIOS is proprietary firmware that comes from a BIOS vendor such as AMI or Phoenix, or a computer manufacturer like Dell. I don't think it is realistic to expect that you can extend a system with legacy BIOS. – William Leara Mar 28 '11 at 02:40
  • 2
    Well, even for UEFI and tianocore, it is still a closed source software in some sense. Yes, tianocore itself is open sourced, but it is just a framework, and you cannot run it on any realistic physical hardware without significant amount of work to initialize all kinds of hardware. BTW: initializing hardware is one of the core functions of the BIOS or UEFI. – Jiang Apr 15 '11 at 21:26
4

Regarding "LoJack"-style solutions, one of the providers of this technology is Absolute Software's Computrace product.

Basically there are 3 components: 1) a software component that runs in the OS; 2) a BIOS component which is baked into the system BIOS (accomplished via Absolute working with the PC vendor); 3) servers at Absolute software that talk to the PC.

For more information on how it works visit:
http://www.absolute.com/en/company/Computrace-Persistence.aspx

(see especially the demo video on this site)

William Leara
  • 10,595
  • 4
  • 36
  • 58
4

To learn something about BIOS, one good source is coreboot.org. It is an open source BIOS (or firmware) and support some physical machines.

Legacy BIOS is written in assembly language, but new generations, such as UEFI or coreboot, are written mostly in C language. BIOS program is stored in the ROM, and executed by the CPU automatically.

Jiang
  • 491
  • 5
  • 9
3

The BIOS program itself does not access the internet or perform any of the advertised functions. The LoJack addition to the BIOS firmware is a file copying/patching utility - at boot up it can check the harddrive for a copy of Windows and proceed to silently install/repair the LoJack service if it has been removed. The service itself includes several measures to lower it's profile and prevent itself from being disabled (similar to how many trojans and malware run several processes that each restore the other if one is disabled or killed).

The LoJack BIOS program can't do anything if a unsupported operating system (like Linux) is installed after the harddrive is wiped.

David
  • 24,700
  • 8
  • 63
  • 83