BitPim 1.0.5 & LG vx9100 - Failed to transition to DM

Eric Dickinson <[email protected]>
Newsgroups gmane.comp.mobile.bitpim.devel
Message-ID <[email protected]>
Hello.

There are a whole bunch of people on HowardForums that would like to use 
BitPim with the new LG vx9100 (aka enV2). Unfortunately, BitPim 
complains that "Access to the file/directory has been blocked on this 
phone by the phone provider". This is the primary problem.

Now, I'm *assuming* that this problem would not arise if the phone could 
be placed in DM (diagnostic mode?). And it's evident from the logs, that 
this isn't happening:

14:10:58.539 COM10: USB support is not available
14:10:58.540 COM10: Opening port COM10, 115200 baud, timeout 3.000000, 
hardwareflow 0, softwareflow 0
14:11:00.364 COM10: Open of comm port suceeded
14:11:00.367 LG-VX10000: Attempting to contact phone
14:11:00.368 LG-VX10000: Retrieving fundamental phone information
14:11:00.368 LG-VX10000: Phone serial number
14:11:00.450 LG-VX10000: Now in brew mode
14:11:00.493 LG-VX10000: Reading group information
14:11:00.640 LG-VX10000: Failed to transition to DM
14:11:00.641 LG-VX10000: stat file pim/pbgroup.dat
14:11:00.684 Error: Access Denied
Access to the file/directory has been blocked on this phone by the phone 
provider

(BTW, the consensus on the forum is that the vx10000 is close enough, 
but other LG model choices do the same thing.)

I looked at the source code and found the bit responsible for the DM 
transition in com_lg.py. From this, I think this is the relevant portion 
of the protocol log:

14:11:00.493 LG-VX10000: Reading group information
14:11:00.493 LG-VX10000: sendbrewcommand Data - 7 bytes
<#! phones.p_lg.ULReq !#>
00000000 fe 00 00 00 00 00 00                                .......

14:11:00.529 LG-VX10000: brew response Data - 24 bytes
<#! phones.p_lg.ULRes !#>
00000000 fe 02 f3 b2 77 11 01 00 de 00 00 00 30 00 00 00     
....w.......0...
00000010 c0 1f 00 00 ff ff 00 aa                             ........

14:11:00.540 LG-VX10000: sendbrewcommand Data - 7 bytes
<#! phones.p_lg.ULReq !#>
00000000 fe 01 6b 1f 05 80 00                                ..k....

14:11:00.638 LG-VX10000: brew response Data - 24 bytes
<#! phones.p_lg.ULRes !#>
00000000 fe 01 f3 b2 77 11 00 5d de 00 00 00 30 00 00 00     
....w..]....0...
00000010 c0 1f 00 00 ff ff 00 aa                             ........

I think this shows that the challenge response is failing. But there are 
a few things I'm not clear on:
1. I found the format of these messages in the p_lg.p file, but I think 
both of them should be 7 bytes long. Why are there 24 bytes in the 
response? Do other LG phones return similarly long responses? Is it safe 
for BitPim to ignore the "extra" 17 bytes or is this part of why this is 
failing?

2. I don't know much about Python or SHA-1 but the comments in the 
get_challenge_response() method in com_lg.py talk about operating on a 
16-byte block. But the input seems to be 4 bytes, and the code seems to 
construct an array of 16 longs (the first of which is the challenge). I 
can't reconcile these different sizes. Are the comments wrong here?

My best guess on what's going on here is that the vx9100 uses a 
different input vector for the hash. But this seems to be a 160-bit 
value! The source code credits Nathan Hjelm for reverse engineering 
this. Does anyone know how he did this? Can it be done with the vx9100? 
A brute force attack here would be Herculean.

BTW, the consensus on HowardForums is that the vx9100 doesn't exhibit 
any of the restricted filesystem behavior until the device has been 
activated for the first time. I suspect (but don't really know) that the 
DM transition fails in this state as well...but the phone is not 
protected at all. BitPim is reported to work fine until the device is 
activated. If access to the device's files is necessary to reverse 
engineer the hash again, it might be necessary to get your hands on a 
not-yet-activated vx9100.


I know this e-mail isn't exactly a discrete question. I guess I was just 
hoping to get some confirmation from those-who-know-more-than-I that my 
understanding of the problem is correct, and to share with the 
developers what I know about this problem. I'll relay any information 
gleaned here back to the HowardForums community.

Thanks,
Eric Dickinson

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.