On Sat, 06 Dec 2008 14:08:29 +0100, mosfet <[EMAIL PROTECTED]> wrote: > About the WM6.1 issue, in the case newer gcc\binutils doesn't solve the > issue I am following another > track. > Actually the problem with WM6.1 comes from a modification done in the > kernel(nk.exe) and especially > in the loader. What you need to know is the fact Microsoft give access to > Windows CE sources through its platform > builder software and so we can have loader source code. > Unfortunately we don't have access to Windows Mobile sources and only > manufacturer can, so I need to disassemble > a WM6.1 nk.exe and compare with assembly and source code from WinCE 5.0.
> > My problem is very simple, I am spending too much time on this task and > preventing my girld friend > to make some shopping (I am kidding but it's almost true) ;-) > So if you have time I would need some help, what I need is very simple : > > I have two text files one called nk-HTC-SHADOW2-WM61.map with the following > format : > > Address Publics by Value Rva+Base Lib:Object > > 0001:0000001c cinfAPISet 0001101c nk:objdisp.obj > > 0001:00000030 APISetMethods 00011030 nk:objdisp.obj > 0001:00000048 cbMDStkAlign 00011048 nk:mdarm.obj > 0001:0000004c NKCpuType 0001104c nk:mdarm.obj > 0001:00000054 IdStrings 00011054 nk:mdarm.obj > > 0001:00000080 NKSignon 00011080 nk:mdarm.obj > ... > 0001:00023a8c IsLoadingInExclusiveVA 00034a8c f nk:loader.obj > > 0001:00023b50 InitStackSlotSetting 00034b50 f nk:loader.obj > 0001:00023bdc IsStackSlotSet 00034bdc f nk:loader.obj > 0001:00023d38 FreeProcModList 00034d38 f nk:loader.obj > > > and another one nk-HTC-SHADOW2-WM61.asm with the assembly > > 8492901C: 53495041 movtpl r5, #0x9041 > 84929020: 00050602 andeq r0, r5, r2, lsl #12 > 84929024: 84929030 ldrhi r9, [r2], #0x30 > 84929028: 00000000 andeq r0, r0, r0 > 8492902C: 00000000 andeq r0, r0, r0 > ... > 84937B80: 0A000007 beq 84937BA4 > 84937B84: E31004FE tst r0, #0xFE, 8 > 84937B88: 03A03010 moveq r3, #0x10 > 84937B8C: 02433DDE subeq r3, r3, #0xDE, 26 > 84937B90: 05933000 ldreq r3, [r3] > 84937B94: 0593300C ldreq r3, [r3, #0xC] > 84937B98: 01833000 orreq r3, r3, r0 > 84937B9C: 058D3010 streq r3, [sp, #0x10] > 84937BA0: 0A000000 beq 84937BA8 > 84937BA4: E58D0010 str r0, [sp, #0x10] > 84937BA8: E59F3040 ldr r3, [pc, #0x40] > 84937BAC: E3A06C01 mov r6, #1, 24 > ... > > I would need a script(perl, python, ruby, sh,..) or a program that maps > address in ASM with > its corresponding name found in .map. > It would be called like that : mapasm nk-HTC-SHADOW2-WM61.asm > nk-HTC-SHADOW2-WM61.map and it would produce > a file with the functions name before assembly : > > cinfAPISet: > 8492901C: 53495041 movtpl r5, #0x9041 > 84929020: 00050602 andeq r0, r5, r2, lsl #12 > 84929024: 84929030 ldrhi r9, [r2], #0x30 > 84929028: 00000000 andeq r0, r0, r0 > 8492902C: 00000000 andeq r0, r0, r0 > ... > XXX: > > To do so, the important value in nk-HTC-SHADOW2-WM61.map are the > 2nd(publics By value) and 3d column(Rva+Base) : > > Address Publics by Value Rva+Base Lib:Object > > 0001:0000001c cinfAPISet 0001101c nk:objdisp.obj > > 0001:00000030 APISetMethods 00011030 nk:objdisp.obj > > It means that cinfAPISet starts at virtual address 0001101c and > symbol APISetMethods starts 00011030-0001101c = 0x14 after cinfAPISet. > > if we apply this to our asm we know that 0001101c corresponds to 8492901C, > so we can find the following symbol address 8492901C+0x14 = 84929030: > > cinfAPISet: > 8492901C: 53495041 movtpl r5, #0x9041 > ... > APISetMethods: > 84929030: > ... > > You will find everything here : > http://www.smartmobili.com/Downloads/cegcc-bug-wm61.zip > > > Thanks > Oups I forgot to mention that not only I need to have symbol name before asm like this : cinfAPISet: 849477A0: EB001F65 bl 8494F53C ... but also to map name with jump\branch(b, bl, beq, bne, ...) operands : 849477A0: EB001F65 bl 8494F53C would become 849477A0: EB001F65 bl KUnicodeToAscii ------------------------------------------------------------------------------ SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. The future of the web can't happen without you. Join us at MIX09 to help pave the way to the Next Web now. Learn more and register at http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ _______________________________________________ Cegcc-devel mailing list Cegcc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cegcc-devel