xboxscene.org forums

Pages: 1 2 [3] 4 5 ... 7

Author Topic: Smartxx Gpl Violation Thread  (Read 1726 times)

stealth

  • Archived User
  • Jr. Member
  • *
  • Posts: 94
Smartxx Gpl Violation Thread
« Reply #30 on: June 02, 2004, 11:40:00 AM »

QUOTE (Rodent @ Jun 2 2004, 08:37 PM)
someone already looked into ozxodus' binarys for such violations?

cu

OzXodus released their cromwell sources, so you don't even need to look in the binary tongue.gif
Logged

cool_guy

  • Archived User
  • Newbie
  • *
  • Posts: 24
Smartxx Gpl Violation Thread
« Reply #31 on: June 02, 2004, 11:53:00 AM »

QUOTE (Rodent @ Jun 2 2004, 08:37 PM)
someone already looked into ozxodus' binarys for such violations?

cu

Maybe you should make a "Xenium Gpl Violation Thread" in the ozxodus forum, and not thread crap this one.
And since its obvious looking at your posts that you are "with" franz, maybe you have never heard the expression, "Those who live in glass houses should not throw stones".  At least 1 'group' of code from smartxxOS has been shown to be taken from cromwell already here, how many have you found in xenium's OS?
and dont answer here, go start your own thread.
Logged

...ReLLiK

  • Archived User
  • Full Member
  • *
  • Posts: 121
Smartxx Gpl Violation Thread
« Reply #32 on: June 02, 2004, 12:02:00 PM »

BTW, where is Franz after all these allegations he is getting? I can't seem to ever remember a whole lot of good coming out of his name! Sorry if this is a bit of topic, but it just gets to me.
Logged

marksu

  • Archived User
  • Sr. Member
  • *
  • Posts: 337
Smartxx Gpl Violation Thread
« Reply #33 on: June 02, 2004, 12:14:00 PM »

QUOTE (...ReLLiK @ Jun 2 2004, 09:02 PM)
BTW, where is Franz after all these allegations he is getting? I can't seem to ever remember a whole lot of good coming out of his name! Sorry if this is a bit of topic, but it just gets to me.

ou, trust me!
HE IS ARROUND!
user posted image
FRANZ! HUH HUUUU  

He just cant hear you for the moment. He has sand in his ears! laugh.gif
Logged

ArmyofONE

  • Archived User
  • Jr. Member
  • *
  • Posts: 71
Smartxx Gpl Violation Thread
« Reply #34 on: June 02, 2004, 12:39:00 PM »

ozxodus has a full xdk unit with kernel debuger  i highly doubt this is a ozxodus issue  more then a smartxx as i recall smart xx making the statement they scraped the old stuff when they spilt and started making their own.
Logged

HSDEMONZ

  • Archived User
  • Hero Member
  • *
  • Posts: 5248
Smartxx Gpl Violation Thread
« Reply #35 on: June 02, 2004, 01:22:00 PM »

QUOTE (Rodent @ Jun 2 2004, 03:37 PM)
someone already looked into ozxodus' binarys for such violations?

cu

Foir awhile.. alot of people were screaming for them to release their source.. in the end.. only part was released.

However.. someone could/should look into their binaries.. if only to be fair and clear.

Course.. that research wouldn't be posted in this thread.. or this forum.

( -> OzXodus/Xenium forum on XS )
Logged

SigTom

  • Archived User
  • Hero Member
  • *
  • Posts: 643
Smartxx Gpl Violation Thread
« Reply #36 on: June 02, 2004, 01:52:00 PM »

Do we really need the attitude that has already been expressed by one poster above, the "us" and "them" concept.  Come on....are we really going to let this divide our community this way?  Its good that we are able to have checks and balances like this thread to help all of us understand what exactly is going on inside of out XBoxes, but we dont need to turn it into a debate which will set up camps on either side, leading to a breakdown of the communal spirit that I think we all, for the most part, try to keep up around here.  

paul, do yer work, this is a good idea, keep it up.  Like I said checks and balances.  Altho I do think that even if there is a multitide of evidence of GPL violation, no sources will be released, but I could be wrong.  

To everyone else, just lets stop (myself included) the stupid name calling and divisions we are letting into this community.
Logged

markduncan

  • Archived User
  • Jr. Member
  • *
  • Posts: 76
Smartxx Gpl Violation Thread
« Reply #37 on: June 02, 2004, 03:46:00 PM »

Hi There all

Now this is only "my opinion for whats its worth" which as free speech dictates we ARE ALL entitled to.

I think the whole reason for this thread being started is to once again highlight how untrustworthy the smartxx team are, this is not my opinion but proven fact.

Look at the Evo-x M8 bios saga, and for example when the initial  hype over smartxx chip with LCD feature it was hyped and hyped, but when hard facts about the features of the LCD feature was asked for by myself and others in their IRC forum, No reply was forth coming now upon pushing the point to clarify the technical details of this feature I was kick/banned from smartxx 's IRC channel.

I for one think that when this sort of behaviour is going on what else can the smartxx team be guilty of ???

They are after all doing all this to line their own bank account possibly at cost to others.

So the bottom line is that OZPAUL is excersizing HIS right to free speech and this allows YOU & I the people who put cash in the smartxx teams bank accounts the  information about what type of people WE are dealing with. This information empowers us to make decisions about where we spend our cash dollars.

And I for one personally will not use the smartxx units after initally purchasing one for evaluation purposes which were not very long indeed before offloading this
"in my opinion" inferior unit

So to OZPAUL  Sir I salute you as a gentleman, please keep us mere mortals informed of the shady charcters out there, as many of us are not in the position to understand and spot when we are being shafted by the shady bunch.


*any edit = my crap spelling being noticed later*

Regards

Mark            Disavowed
Logged

underthebridge

  • Archived User
  • Full Member
  • *
  • Posts: 186
Smartxx Gpl Violation Thread
« Reply #38 on: June 02, 2004, 05:23:00 PM »

very well put markduncan, I couldn't have said it better.

thanks oz_paulb for the heads up.
Logged

greengiant

  • Archived User
  • Sr. Member
  • *
  • Posts: 266
Smartxx Gpl Violation Thread
« Reply #39 on: June 02, 2004, 05:41:00 PM »

The work being done is very good, trying to find if GPL code has been used or not in Smartxx OS. And add onto the list of things against Smartxx.
Thats fine, people should know whats going on.
But I find this to be somewhat sided against smartxx, withought even looking at XOS. Others have pointed out this fact.

And as Ozpaulb has pointed out, Franz was on XboxLinux and he did write some of the cromwell stuff. So it is his right to include his work in his project. (Please tell me if this is wrong via GPL)

Shallax put the XOS perfectly. Those 3 questions should be discussed and if possible investigated.

I checked the Xenium section, and there is no thread started. So Iam guessing no one is interested, i guess the scene is just just con smartxx at the moment.
Logged

ShALLaX

  • Archived User
  • Newbie
  • *
  • Posts: 41
Smartxx Gpl Violation Thread
« Reply #40 on: June 02, 2004, 06:32:00 PM »

wink.gif... it was just released to fob us all off, perhaps?

2) That didn't answer the question ;p.  Cromwell has been openly available to evaluate for fitness of purpose for a hell of a long time.  It should have been obvious that it wouldnt have made a great OS to start with.  How comes they didnt use their own OS from the outset?  Saying "it was easier to use Cromwell" will only suggest it was a rush job.

3) My bad, thought the *OZ(xodus?)*_paulb indicated he is/was associated.  *shrugs*
Logged

stealth

  • Archived User
  • Jr. Member
  • *
  • Posts: 94
Smartxx Gpl Violation Thread
« Reply #41 on: June 02, 2004, 06:50:00 PM »

QUOTE (ShALLaX @ Jun 3 2004, 03:32 AM)
1) I used "irrelevant" for lack of a better word (its 4:42am right now, so I'm sure as hell not going to be able to think of a better word now ;p)... I guess what I meant is irrelevant in the case that anyone else got a hold of the code.  I.e. none of their trade secrets would be unveiled wink.gif... it was just released to fob us all off, perhaps?

2) That didn't answer the question ;p.  Cromwell has been openly available to evaluate for fitness of purpose for a hell of a long time.  It should have been obvious that it wouldnt have made a great OS to start with.  How comes they didnt use their own OS from the outset?  Saying "it was easier to use Cromwell" will only suggest it was a rush job.

3) My bad, thought the *OZ(xodus?)*_paulb indicated he is/was associated.  *shrugs*

1) Maybe instead of being released to fob everyone off, it was released to comply with the requirements of the GPL.

2) Yes it did answer the question.  I fail to see how using existing code is "a rush job".  Certain goals were met using cromwell as a pseudo kernel for the 1.x xenium os's.   The desired features for the 2.x series were WAY past what cromwell could ever provide.  Hence the reason for the rewrite.

3) Oz generally refers to australia tongue.gif  Not OzXodus.  You probably should lay off the conspiracy theories if you don't even know who works for who.
Logged

oz_paulb

  • Recovered User
  • Full Member
  • *
  • Posts: 172
Smartxx Gpl Violation Thread
« Reply #42 on: June 02, 2004, 07:19:00 PM »

QUOTE (ShALLaX @ Jun 3 2004, 03:32 AM)
1) I used "irrelevant" for lack of a better word (its 4:42am right now, so I'm sure as hell not going to be able to think of a better word now ;p)... I guess what I meant is irrelevant in the case that anyone else got a hold of the code.  I.e. none of their trade secrets would be unveiled ;)... it was just released to fob us all off, perhaps?

2) That didn't answer the question ;p.  Cromwell has been openly available to evaluate for fitness of purpose for a hell of a long time.  It should have been obvious that it wouldnt have made a great OS to start with.  How comes they didnt use their own OS from the outset?  Saying "it was easier to use Cromwell" will only suggest it was a rush job.

3) My bad, thought the *OZ(xodus?)*_paulb indicated he is/was associated.  *shrugs*

I have no connection with any modchip company (other than occasional correspondence).

"oz" (in "oz_paulb") does in fact mean "Australia".  I'm not Australian, though - I created the 'handle' while I was vacationing there, and it just "stuck".

- Paulb
Logged

Duke

  • Archived User
  • Newbie
  • *
  • Posts: 2
Smartxx Gpl Violation Thread
« Reply #43 on: June 02, 2004, 07:24:00 PM »

QUOTE (Rodent)
someone already looked into ozxodus' binarys for such violations?

cu.


Rodent - that's called the "fine art of mis-direction".  Cool Guy - you are right to call him on this.
Logged

oz_paulb

  • Recovered User
  • Full Member
  • *
  • Posts: 172
Smartxx Gpl Violation Thread
« Reply #44 on: June 02, 2004, 07:24:00 PM »

CODE
/**************************************************************************/
/* BIOS start                                                             */
/*  Michael Steil                                                         */
/*  2002-12-19 [email protected] changed to use partition marked as boot   */
/*                              changed to use non 8.3 ISO9660 names      */
/*  2002-12-18 [email protected] added stuff for ISO9660                   */
/*  2002-11-25 [email protected] changed to using existing GDT/IDT         */
/*                              fixed AND bug in 16-bit code, tidied      */
/*  2002-12-11 [email protected] rewrote entirely to use xbeloader method  */
/*                              and reiserfs grub code                    */
/**************************************************************************/

/***************************************************************************
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*                                                                         *
***************************************************************************/




Here's a snippet of part of the "StartBios()" function from that date:

CODE
   if(nIcon >= ICONCOUNT) {
 if(nDrive == 0) {
    printk("Defaulting to HDD boot\n");
    I2CTransmitWord(0x10, 0x0c01); // close DVD tray
#ifdef DEFAULT_FATX
    nIcon = ICON_FATX;
#else
    nIcon = ICON_NATIVE;
#endif
 } else {
    printk("Defaulting to CD boot\n");
    nIcon = ICON_CD;
 }
   }


   if(nIcon == ICON_FATX) {
 strcpy(config.szAppend, "init=/linuxrc root=/dev/ram0 pci=biosirq kbd-reset"); // default
 strcpy(config.szKernel, "/vmlinuz");
 strcpy(config.szInitrd, "/initrd");
   } else {
 strcpy(config.szAppend, "root=/dev/hda2 devfs=mount kbd-reset"); // default
 strcpy(config.szKernel, "/boot/vmlinuz");
 strcpy(config.szInitrd, "/boot/initrd");
   }


   switch(nIcon) {
 case ICON_FATX:
    BootLodaConfigFATX(&config, false);
    break;
 case ICON_NATIVE:
    BootLodaConfigNative(nActivePartition, &config, false);
    break;
 case ICON_CD:
    BootLodaConfigCD(&config);
    break;
 case ICON_SETUP:
#ifndef XBE
    BootVideoClearScreen(&jpegBackdrop, nTempStartMessageCursorY, nTempCursorResumeY+100);
    VIDEO_CURSOR_POSY=nTempStartMessageCursorY;
    VIDEO_CURSOR_POSX=0;
    BootFlashConfirm();
#endif
    break;
 default:
    printk("Selection not implemented\n");
    break;
   }




Here's a snippet of the current CVS version of "StartBios()" (checked-out today: June 2, 2004):

CODE
   if (bootfrom==-1) {
       // Nothing in All selceted
 #ifdef DEFAULT_FATX
    bootfrom = ICON_FATX;
    printk("Defaulting to HDD boot\n");
    I2CTransmitWord(0x10, 0x0c01); // close DVD tray
    bootfrom = ICON_NATIVE;

 #else
    printk("Defaulting to CD boot\n");
    bootfrom = ICON_CD;

 #endif   
   }


   if(bootfrom == ICON_FATX) {
 strcpy(config->szAppend, "init=/linuxrc root=/dev/ram0 pci=biosirq kbd-reset"); // default
 strcpy(config->szKernel, "/vmlinuz");
 strcpy(config->szInitrd, "/initrd");
   } else {
 strcpy(config->szAppend, "root=/dev/hda2 devfs=mount kbd-reset"); // default
 strcpy(config->szKernel, "/boot/vmlinuz");
 strcpy(config->szInitrd, "/boot/initrd");
   }
       
       
   switch(bootfrom) {
 case ICON_FATX:
    BootLoadConfigFATX(config);
    ExittoLinux(config);
    break;
 case ICON_NATIVE:
    BootLoadConfigNative(nActivePartition, config, false);
    ExittoLinux(config);
    break;
 case ICON_CD:
    BootLoadConfigCD(config);
    ExittoLinux(config);
    break;
 case ICON_FLASH:
    etherboot();
    break;
 default:
    printk("Selection not implemented\n");
    break;
   }




Now, here's a disassembly of the same code in SmartXX OS 3311 (of course, the function/symbol names were made by me, but I think it'll be clear that it's the same code):

CODE
seg000:03A0824C; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:03A0824C
seg000:03A0824C; Attributes: bp-based frame
seg000:03A0824C
seg000:03A0824C StartBios       proc near              ; CODE XREF: do_start_bios+20Fp
seg000:03A0824C                                        ; sub_3A1E378+6D5p ...
seg000:03A0824C
seg000:03A0824C var_48          = byte ptr -48h
seg000:03A0824C var_34          = byte ptr -34h
seg000:03A0824C arg_config      = dword ptr  8
seg000:03A0824C arg_nActivePartition= dword ptr  0Ch
seg000:03A0824C arg_bootfrom    = dword ptr  14h
seg000:03A0824C
seg000:03A0824C                 push    ebp
seg000:03A0824D                 mov     ebp, esp
seg000:03A0824F                 sub     esp, 3Ch
seg000:03A08252                 push    edi
seg000:03A08253                 push    esi
seg000:03A08254                 push    ebx
seg000:03A08255                 mov     eax, dword_3A4D500
seg000:03A0825A                 mov     dword ptr unk_3A4D6DC, 0
seg000:03A08264                 mov     dword_3A4D6C8, 0
seg000:03A0826E                 mov     dword_3A4D6D4, 0
seg000:03A08278                 mov     dword_3A4D6CC, 1FFFFh
seg000:03A08282                 mov     dword_3A4D73C, 1FFFFh
seg000:03A0828C                 mov     dword_3A4C668, 0FFh
seg000:03A08296                 mov     dword_3A4C674, 0FFFFFFFFh
seg000:03A082A0                 mov     dword_3A4C66C, 0
seg000:03A082AA                 mov     dword_3A4C600, 0
seg000:03A082B4                 mov     dword_3A4C604, 0
seg000:03A082BE                 cmp     dword ptr [eax+20h], 1
seg000:03A082C2                 jnz     short loc_3A082D9
seg000:03A082C4                 mov     eax, offset dword_3A4D580
seg000:03A082C9                 cmp     dword ptr [eax+4], 80h; 'Ç'
seg000:03A082D0                 jnz     short loc_3A082D9
seg000:03A082D2                 mov     dword ptr [eax+4], 40h; '@'
seg000:03A082D9
seg000:03A082D9 loc_3A082D9:                           ; CODE XREF: StartBios+76j
seg000:03A082D9                                        ; StartBios+84j
seg000:03A082D9                 cmp     [ebp+arg_bootfrom], 0FFFFFFFFh; if (bootfrom == -1) {
seg000:03A082DD                 jnz     short loc_3A082E6
seg000:03A082DF                 mov     [ebp+arg_bootfrom], 2; bootfrom = ICON_CD
seg000:03A082E6
seg000:03A082E6 loc_3A082E6:                           ; CODE XREF: StartBios+91j
seg000:03A082E6                 cmp     [ebp+arg_bootfrom], 0; if (bootfrom == ICON_FATX) {
seg000:03A082EA                 jnz     short loc_3A08342
seg000:03A082EC                 mov     edi, [ebp+arg_config]
seg000:03A082EF                 add     edi, 1804h
seg000:03A082F5                 mov     esi, offset aInitLinuxrcRoo; "init=/linuxrc root=/dev/ram0 pci=biosir"...
seg000:03A082FA                 mov     edx, offset aVmlinuz; "/vmlinuz"
seg000:03A082FF                 cld
seg000:03A08300                 mov     ecx, 0Ch
seg000:03A08305                 rep movsd
seg000:03A08307                 movsw
seg000:03A08309                 movsb                  ; strcpy(config->szAppend, "init=...")
seg000:03A0830A                 mov     eax, dword ptr aVmlinuz; "/vmlinuz"
seg000:03A0830F                 mov     ecx, [ebp+arg_config]
seg000:03A08312                 mov     [ecx+804h], eax
seg000:03A08318                 mov     eax, [edx+4]
seg000:03A0831B                 mov     [ecx+808h], eax
seg000:03A08321                 mov     al, [edx+8]
seg000:03A08324                 mov     [ecx+80Ch], al
seg000:03A0832A                 mov     eax, dword ptr aInitrd_0; "/initrd"
seg000:03A0832F                 mov     [ecx+1004h], eax
seg000:03A08335                 mov     eax, dword ptr aInitrd_0+4
seg000:03A0833A                 mov     [ecx+1008h], eax
seg000:03A08340                 jmp     short loc_3A083B4
seg000:03A08342; ---------------------------------------------------------------------------
seg000:03A08342
seg000:03A08342 loc_3A08342:                           ; CODE XREF: StartBios+9Ej
seg000:03A08342                 mov     edi, [ebp+arg_config]
seg000:03A08345                 add     edi, 1804h
seg000:03A0834B                 mov     esi, offset aRootDevHda2Dev; "root=/dev/hda2 devfs=mount kbd-reset"
seg000:03A08350                 mov     edx, 3A38808h
seg000:03A08355                 cld
seg000:03A08356                 mov     ecx, 9
seg000:03A0835B                 rep movsd
seg000:03A0835D                 movsb                  ; strcpy(config->szAppend, "root=..")
seg000:03A0835E                 mov     eax, dword ptr aBootVmlinuz; "/boot/vmlinuz"
seg000:03A08363                 mov     ecx, [ebp+arg_config]
seg000:03A08366                 mov     [ecx+804h], eax
seg000:03A0836C                 mov     eax, [edx+4]
seg000:03A0836F                 mov     [ecx+808h], eax
seg000:03A08375                 mov     eax, [edx+8]
seg000:03A08378                 mov     [ecx+80Ch], eax
seg000:03A0837E                 mov     ax, [edx+0Ch]
seg000:03A08382                 mov     [ecx+810h], ax
seg000:03A08389                 mov     eax, dword ptr aBootInitrd; "/boot/initrd"
seg000:03A0838E                 mov     edx, offset aBootInitrd; "/boot/initrd"
seg000:03A08393                 mov     [ecx+1004h], eax
seg000:03A08399                 mov     eax, [edx+4]
seg000:03A0839C                 mov     [ecx+1008h], eax
seg000:03A083A2                 mov     eax, [edx+8]
seg000:03A083A5                 mov     [ecx+100Ch], eax
seg000:03A083AB                 mov     al, [edx+0Ch]
seg000:03A083AE                 mov     [ecx+1010h], al
seg000:03A083B4
seg000:03A083B4 loc_3A083B4:                           ; CODE XREF: StartBios+F4j
seg000:03A083B4                 mov     dword_3A4D5B0, 80808080h
seg000:03A083BE                 add     esp, 0FFFFFFFCh
seg000:03A083C1                 push    28h; '('
seg000:03A083C3                 push    offset unk_3A388F2
seg000:03A083C8                 lea     ebx, [ebp+var_34]
seg000:03A083CB                 push    ebx
seg000:03A083CC                 call    sub_3A08EDC
seg000:03A083D1                 add     esp, 0FFFFFFF8h
seg000:03A083D4                 push    ebx
seg000:03A083D5                 push    0FAh; '·'
seg000:03A083DA                 call    sub_3A06878
seg000:03A083DF                 mov     dword_3A4C5E4, 0
seg000:03A083E9                 add     esp, 20h
seg000:03A083EC                 add     esp, 0FFFFFFF8h
seg000:03A083EF                 push    0
seg000:03A083F1                 push    offset currentvideomodedetails
seg000:03A083F6                 call    sub_3A01F20
seg000:03A083FB                 mov     dword_3A4C5E4, 1
seg000:03A08405                 wbinvd
seg000:03A08407                 add     esp, 10h
seg000:03A0840A                 cmp     [ebp+arg_bootfrom], 1; switch(bootfrom) {
seg000:03A0840E                 jz      short _case_ICON_NATIVE
seg000:03A08410                 jg      short loc_3A08420
seg000:03A08412                 cmp     [ebp+arg_bootfrom], 0
seg000:03A08416                 jz      short _case_ICON_FATX
seg000:03A08418                 jmp     loc_3A084B8
seg000:03A08418; ---------------------------------------------------------------------------
seg000:03A0841D                 db  8Dh; ì
seg000:03A0841E                 db  76h; v
seg000:03A0841F                 db    0;  
seg000:03A08420; ---------------------------------------------------------------------------
seg000:03A08420
seg000:03A08420 loc_3A08420:                           ; CODE XREF: StartBios+1C4j
seg000:03A08420                 cmp     [ebp+arg_bootfrom], 2
seg000:03A08424                 jz      short _case_ICON_CD
seg000:03A08426                 cmp     [ebp+arg_bootfrom], 3
seg000:03A0842A                 jz      short _case_ICON_FLASH
seg000:03A0842C                 jmp     loc_3A084B8
seg000:03A08431; ---------------------------------------------------------------------------
seg000:03A08431
seg000:03A08431 _case_ICON_FATX:                       ; CODE XREF: StartBios+1CAj
seg000:03A08431                 mov     eax, [ebp+arg_config]
seg000:03A08434                 add     esp, 0FFFFFFF4h
seg000:03A08437                 push    eax
seg000:03A08438                 call    BootLodaConfigFATX
seg000:03A0843D                 mov     edx, [ebp+arg_config]
seg000:03A08440                 add     esp, 0FFFFFFF4h
seg000:03A08443                 push    edx
seg000:03A08444                 call    ExitToLinux
seg000:03A08449                 jmp     short loc_3A084B8
seg000:03A08449; ---------------------------------------------------------------------------
seg000:03A0844B                 db  90h; É
seg000:03A0844C                 db  8Dh; ì
seg000:03A0844D                 db  74h; t
seg000:03A0844E                 db  26h; &
seg000:03A0844F                 db    0;  
seg000:03A08450; ---------------------------------------------------------------------------
seg000:03A08450
seg000:03A08450 _case_ICON_NATIVE:                     ; CODE XREF: StartBios+1C2j
seg000:03A08450                 add     esp, 0FFFFFFFCh
seg000:03A08453                 push    0
seg000:03A08455                 mov     ecx, [ebp+arg_config]
seg000:03A08458                 push    ecx
seg000:03A08459                 mov     eax, [ebp+arg_nActivePartition]
seg000:03A0845C                 push    eax
seg000:03A0845D                 call    BootLodaConfigNative
seg000:03A08462                 mov     eax, [ebp+arg_config]
seg000:03A08465                 add     esp, 0FFFFFFF4h
seg000:03A08468                 push    eax
seg000:03A08469                 call    ExitToLinux
seg000:03A0846E                 jmp     short loc_3A084B8
seg000:03A08470; ---------------------------------------------------------------------------
seg000:03A08470
seg000:03A08470 _case_ICON_CD:                         ; CODE XREF: StartBios+1D8j
seg000:03A08470                 mov     edx, [ebp+arg_config]
seg000:03A08473                 add     esp, 0FFFFFFF4h
seg000:03A08476                 push    edx
seg000:03A08477                 call    BootLodaConfigCD
seg000:03A0847C                 add     esp, 10h
seg000:03A0847F                 cmp     eax, 63h; 'c'
seg000:03A08482                 jnz     short loc_3A08490
seg000:03A08484                 mov     eax, 63h; 'c'
seg000:03A08489                 jmp     short loc_3A084B8
seg000:03A08489; ---------------------------------------------------------------------------
seg000:03A0848B                 db  90h; É
seg000:03A0848C                 db  8Dh; ì
seg000:03A0848D                 db  74h; t
seg000:03A0848E                 db  26h; &
seg000:03A0848F                 db    0;  
seg000:03A08490; ---------------------------------------------------------------------------
seg000:03A08490
seg000:03A08490 loc_3A08490:                           ; CODE XREF: StartBios+236j
seg000:03A08490                 mov     ecx, [ebp+arg_config]
seg000:03A08493                 add     esp, 0FFFFFFF4h
seg000:03A08496                 push    ecx
seg000:03A08497                 call    ExitToLinux
seg000:03A0849C                 jmp     short loc_3A084B8
seg000:03A0849C; ---------------------------------------------------------------------------
seg000:03A0849E                 db  89h; ë
seg000:03A0849F                 db 0F6h; ÷
seg000:03A084A0; ---------------------------------------------------------------------------
seg000:03A084A0
seg000:03A084A0 _case_ICON_FLASH:                      ; CODE XREF: StartBios+1DEj
seg000:03A084A0                 mov     eax, [ebp+arg_config]
seg000:03A084A3                 add     esp, 0FFFFFFF4h
seg000:03A084A6                 push    eax
seg000:03A084A7                 call    sub_3A07ABC
seg000:03A084AC                 mov     edx, [ebp+arg_config]
seg000:03A084AF                 add     esp, 0FFFFFFF4h
seg000:03A084B2                 push    edx
seg000:03A084B3                 call    ExitToLinux
seg000:03A084B8
seg000:03A084B8 loc_3A084B8:                           ; CODE XREF: StartBios+1CCj
seg000:03A084B8                                        ; StartBios+1E0j ...
seg000:03A084B8                 lea     esp, [ebp-48h]
seg000:03A084BB                 pop     ebx
seg000:03A084BC                 pop     esi
seg000:03A084BD                 pop     edi
seg000:03A084BE                 mov     esp, ebp
seg000:03A084C0                 pop     ebp
seg000:03A084C1                 retn
seg000:03A084C1 StartBios       endp
seg000:03A084C1




I believe the similarities are clear so far.  But, let's follow it a bit further.

Andy wrote the ISO9660 code in Cromwell used for booting from CDROM.  This starts at the function "BootLodaConfigCD()" (note: this has since been renamed (spelling fixed) to "BootLoadConfigCD()").

Here's a dump of part of the current CVS version of "BootLoadConfigCD()":

CODE
   ISO_PRIMARY_VOLUME_DESCRIPTOR * pipvd = (ISO_PRIMARY_VOLUME_DESCRIPTOR *)&ba[0];
   char sz[64];
   memset(&sz,0x00,sizeof(sz));
   BootIso9660DescriptorToString(pipvd->m_szSystemIdentifier, sizeof(pipvd->m_szSystemIdentifier), sz);
   VIDEO_ATTR=0xffeeeeee;
   printk("Cdrom: ");
   VIDEO_ATTR=0xffeeeeff;
   printk("%s", sz);
   VIDEO_ATTR=0xffeeeeee;
   printk(" - ");
   VIDEO_ATTR=0xffeeeeff;
   BootIso9660DescriptorToString(pipvd->m_szVolumeIdentifier, sizeof(pipvd->m_szVolumeIdentifier), sz);
   printk("%s\n", sz);

   printk("  Loading linuxboot.cfg from CDROM... \n");
   
   dwConfigSize=BootIso9660GetFile("/linuxboot.cfg", (BYTE *)KERNEL_SETUP, 0x800, 0x0);

   if(((int)dwConfigSize)<0) // not found, try mangled 8.3 version
 dwConfigSize=BootIso9660GetFile("/LINUXBOO.CFG", (BYTE *)KERNEL_SETUP, 0x800, 0x0);




Here's the same code in the current SmartXX OS "BootLodaConfigCD()":

CODE
seg000:03A076DC                 lea     edi, [ebp+var_874]
seg000:03A076E2                 xor     eax, eax
seg000:03A076E4                 add     esp, 0FFFFFFFCh
seg000:03A076E7                 lea     ebx, [ebp+var_874]
seg000:03A076ED                 cld
seg000:03A076EE                 mov     ecx, 10h
seg000:03A076F3                 rep stosd              ; memset
seg000:03A076F5                 push    ebx
seg000:03A076F6                 push    20h; ' '
seg000:03A076F8                 lea     eax, [ebp+var_7F8]
seg000:03A076FE                 push    eax
seg000:03A076FF                 call    BootIso9660DescriptorToString
seg000:03A07704                 add     esp, 20h
seg000:03A07707                 add     esp, 0FFFFFFFCh
seg000:03A0770A                 push    ebx
seg000:03A0770B                 push    20h; ' '
seg000:03A0770D                 lea     eax, [ebp+var_7D8]
seg000:03A07713                 push    eax
seg000:03A07714                 call    BootIso9660DescriptorToString
seg000:03A07719                 push    0
seg000:03A0771B                 push    800h
seg000:03A07720                 push    2000000h
seg000:03A07725                 push    offset aLinuxboot_cfg; "/linuxboot.cfg"
seg000:03A0772A                 call    BootIso9660GetFile
seg000:03A0772F                 mov     edx, eax
seg000:03A07731                 add     esp, 20h
seg000:03A07734                 test    edx, edx
seg000:03A07736                 jge     short loc_3A077B2
seg000:03A07738                 push    0
seg000:03A0773A                 push    800h
seg000:03A0773F                 push    2000000h
seg000:03A07744                 push    offset aLinuxboo_cfg; "/LINUXBOO.CFG"
seg000:03A07749                 call    BootIso9660GetFile
seg000:03A0774E                 mov     edx, eax
seg000:03A07750                 add     esp, 10h




This gets us to the ISO 9660 functions, written by Andy.  The top of "fs/cdrom/BootFileSystemIso9660.c" in the current CVS has the following notice:

CODE
/***************************************************************************
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*                                                                         *
***************************************************************************

   2002-12-17 [email protected]  Created
*/




Here's the source to "BootIso9660DescriptorToString()" from the same file:

CODE
void BootIso9660DescriptorToString(const char * szcDescriptor, int nLength, char * szStringResult)
{
   int n=0, n1=0, nLastNonspace=0;

   while(n  if((n1!=0) || (szcDescriptor[n]!=' ')) {
    szStringResult[n1++]=szcDescriptor[n];
    if(szcDescriptor[n]!=' ') nLastNonspace=n1;
 }
 n++;
   }
   szStringResult[nLastNonspace]='\0';
}




And the same code in SmartXX OS:

CODE
seg000:03A08880; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:03A08880
seg000:03A08880; Attributes: bp-based frame
seg000:03A08880
seg000:03A08880 BootIso9660DescriptorToString proc near; CODE XREF: BootLodaConfigCD+1B3p
seg000:03A08880                                        ; BootLodaConfigCD+1C8p
seg000:03A08880
seg000:03A08880 arg_szcDescriptor= dword ptr  8
seg000:03A08880 arg_nLength     = dword ptr  0Ch
seg000:03A08880 arg_szStringResult= dword ptr  10h
seg000:03A08880
seg000:03A08880                 push    ebp
seg000:03A08881                 mov     ebp, esp
seg000:03A08883                 push    edi
seg000:03A08884                 push    esi
seg000:03A08885                 push    ebx
seg000:03A08886                 xor     ecx, ecx
seg000:03A08888                 xor     edx, edx
seg000:03A0888A                 xor     ebx, ebx
seg000:03A0888C                 mov     esi, [ebp+arg_szcDescriptor]
seg000:03A0888F                 cmp     ebx, [ebp+arg_nLength]
seg000:03A08892                 jge     short loc_3A088B4
seg000:03A08894
seg000:03A08894 loc_3A08894:                           ; CODE XREF: BootIso9660DescriptorToString+32j
seg000:03A08894                 mov     al, [ecx+esi]
seg000:03A08897                 test    edx, edx
seg000:03A08899                 jnz     short loc_3A0889F
seg000:03A0889B                 cmp     al, 20h; ' '
seg000:03A0889D                 jz      short loc_3A088AE
seg000:03A0889F
seg000:03A0889F loc_3A0889F:                           ; CODE XREF: BootIso9660DescriptorToString+19j
seg000:03A0889F                 mov     edi, [ebp+arg_szStringResult]
seg000:03A088A2                 mov     [edx+edi], al
seg000:03A088A5                 inc     edx
seg000:03A088A6                 cmp     byte ptr [ecx+esi], 20h; ' '
seg000:03A088AA                 jz      short loc_3A088AE
seg000:03A088AC                 mov     ebx, edx
seg000:03A088AE
seg000:03A088AE loc_3A088AE:                           ; CODE XREF: BootIso9660DescriptorToString+1Dj
seg000:03A088AE                                        ; BootIso9660DescriptorToString+2Aj
seg000:03A088AE                 inc     ecx
seg000:03A088AF                 cmp     ecx, [ebp+arg_nLength]
seg000:03A088B2                 jl      short loc_3A08894
seg000:03A088B4
seg000:03A088B4 loc_3A088B4:                           ; CODE XREF: BootIso9660DescriptorToString+12j
seg000:03A088B4                 mov     eax, [ebp+arg_szStringResult]
seg000:03A088B7                 mov     byte ptr [ebx+eax], 0
seg000:03A088BB                 pop     ebx
seg000:03A088BC                 pop     esi
seg000:03A088BD                 pop     edi
seg000:03A088BE                 mov     esp, ebp
seg000:03A088C0                 pop     ebp
seg000:03A088C1                 retn
seg000:03A088C1 BootIso9660DescriptorToString endp
seg000:03A088C1




Here's the source to "BootIso9660GetFile()" from CVS:

CODE
int BootIso9660GetFile(const char *szcPath, BYTE *pbaFile, DWORD dwFileLengthMax, DWORD dwOffset)
{
   ISO_SYSTEM_DIRECTORY_RECORD isdr;
   int nReturn=BootIso9660GetFileDetails(szcPath, &isdr);
   DWORD dwSector;
   DWORD dwFileLengthTaken;

   if(nReturn) return nReturn;

   dwSector=isdr.m_dwrExtentLocation.m_dwLittleEndian + (dwOffset / 2048);
   dwOffset=dwOffset % 2048;
   if(dwFileLengthMax > isdr.m_dwrDataLength.m_dwLittleEndian) {

 dwFileLengthMax=isdr.m_dwrDataLength.m_dwLittleEndian;
   }
   dwFileLengthTaken=dwFileLengthMax;

//   printk("File length used = 0x%x, 0x%x\n", (int)dwFileLengthMax, (int)isdr.m_dwrDataLength.m_dwLittleEndian);

   while(dwFileLengthMax) {
 DWORD dwLengthThisTime=2048;
 if(dwLengthThisTime >dwFileLengthMax) dwLengthThisTime=dwFileLengthMax;

 if(dwOffset || (dwLengthThisTime<2048)) {
    BYTE ba[2048];
    dwLengthThisTime-=dwOffset;
    if(BootIdeReadSector(1, &ba[0], dwSector, 0, 2048)) return -6;
    memcpy(pbaFile, &ba[dwOffset], dwLengthThisTime);
    dwOffset=0;
 } else {
    if(BootIdeReadSector(1, pbaFile, dwSector, 0, 2048)) return -6;
 }
 dwSector++;
 dwFileLengthMax-=dwLengthThisTime;
 pbaFile+=dwLengthThisTime;
   }
   return (int)dwFileLengthTaken;
}




Here's the same code in SmartXX OS:

CODE
seg000:03A08CAC; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg000:03A08CAC
seg000:03A08CAC; Attributes: bp-based frame
seg000:03A08CAC
seg000:03A08CAC BootIso9660GetFile proc near           ; CODE XREF: BootLodaConfigCD+1DEp
seg000:03A08CAC                                        ; BootLodaConfigCD+1FDp ...
seg000:03A08CAC
seg000:03A08CAC var_848         = byte ptr -848h
seg000:03A08CAC var_828         = dword ptr -828h
seg000:03A08CAC var_824         = byte ptr -824h
seg000:03A08CAC var_24          = byte ptr -24h
seg000:03A08CAC var_22          = dword ptr -22h
seg000:03A08CAC var_1A          = dword ptr -1Ah
seg000:03A08CAC arg_szcPath     = dword ptr  8
seg000:03A08CAC arg_pbaFile     = dword ptr  0Ch
seg000:03A08CAC arg_dwFileLengthMax= dword ptr  10h
seg000:03A08CAC arg_dwOffset    = dword ptr  14h
seg000:03A08CAC
seg000:03A08CAC                 push    ebp
seg000:03A08CAD                 mov     ebp, esp
seg000:03A08CAF                 sub     esp, 83Ch
seg000:03A08CB5                 lea     eax, [ebp+var_24]
seg000:03A08CB8                 push    edi
seg000:03A08CB9                 push    esi
seg000:03A08CBA                 push    ebx
seg000:03A08CBB                 mov     edx, [ebp+arg_szcPath]
seg000:03A08CBE                 add     esp, 0FFFFFFF8h
seg000:03A08CC1                 push    eax
seg000:03A08CC2                 push    edx
seg000:03A08CC3                 call    BootIso9960GetFileDetails
seg000:03A08CC8                 add     esp, 10h
seg000:03A08CCB                 test    eax, eax
seg000:03A08CCD                 jz      short loc_3A08CE0
seg000:03A08CCF                 jmp     loc_3A08DA8
seg000:03A08CD4; ---------------------------------------------------------------------------
seg000:03A08CD4
seg000:03A08CD4 loc_3A08CD4:                           ; CODE XREF: BootIso9660GetFile+A0j
seg000:03A08CD4                                        ; BootIso9660GetFile+DFj
seg000:03A08CD4                 mov     eax, 0FFFFFFFAh
seg000:03A08CD9                 jmp     loc_3A08DA8
seg000:03A08CD9; ---------------------------------------------------------------------------
seg000:03A08CDE                 db  89h; ë
seg000:03A08CDF                 db 0F6h; ÷
seg000:03A08CE0; ---------------------------------------------------------------------------
seg000:03A08CE0
seg000:03A08CE0 loc_3A08CE0:                           ; CODE XREF: BootIso9660GetFile+21j
seg000:03A08CE0                 mov     edi, [ebp+arg_dwOffset]
seg000:03A08CE3                 mov     eax, [ebp+var_1A]
seg000:03A08CE6                 shr     edi, 0Bh
seg000:03A08CE9                 add     edi, [ebp+var_22]
seg000:03A08CEC                 and     [ebp+arg_dwOffset], 7FFh
seg000:03A08CF3                 cmp     [ebp+arg_dwFileLengthMax], eax
seg000:03A08CF6                 jbe     short loc_3A08CFB
seg000:03A08CF8                 mov     [ebp+arg_dwFileLengthMax], eax
seg000:03A08CFB
seg000:03A08CFB loc_3A08CFB:                           ; CODE XREF: BootIso9660GetFile+4Aj
seg000:03A08CFB                 mov     eax, [ebp+arg_dwFileLengthMax]
seg000:03A08CFE                 mov     [ebp+var_828], eax
seg000:03A08D04                 test    eax, eax
seg000:03A08D06                 jz      loc_3A08DA2
seg000:03A08D0C                 lea     esi, [esi+0]
seg000:03A08D10
seg000:03A08D10 loc_3A08D10:                           ; CODE XREF: BootIso9660GetFile+F0j
seg000:03A08D10                 mov     esi, 800h
seg000:03A08D15                 cmp     esi, [ebp+arg_dwFileLengthMax]
seg000:03A08D18                 jbe     short loc_3A08D1D
seg000:03A08D1A                 mov     esi, [ebp+arg_dwFileLengthMax]
seg000:03A08D1D
seg000:03A08D1D loc_3A08D1D:                           ; CODE XREF: BootIso9660GetFile+6Cj
seg000:03A08D1D                 cmp     [ebp+arg_dwOffset], 0
seg000:03A08D21                 jnz     short loc_3A08D2B
seg000:03A08D23                 cmp     esi, 7FFh
seg000:03A08D29                 ja      short loc_3A08D70
seg000:03A08D2B
seg000:03A08D2B loc_3A08D2B:                           ; CODE XREF: BootIso9660GetFile+75j
seg000:03A08D2B                 sub     esi, [ebp+arg_dwOffset]
seg000:03A08D2E                 add     esp, 0FFFFFFF4h
seg000:03A08D31                 push    800h
seg000:03A08D36                 push    0
seg000:03A08D38                 push    edi
seg000:03A08D39                 lea     ebx, [ebp+var_824]
seg000:03A08D3F                 push    ebx
seg000:03A08D40                 push    1
seg000:03A08D42                 call    BootIdeReadSector
seg000:03A08D47                 add     esp, 20h
seg000:03A08D4A                 test    eax, eax
seg000:03A08D4C                 jnz     short loc_3A08CD4
seg000:03A08D4E                 mov     edx, [ebp+arg_dwOffset]
seg000:03A08D51                 lea     eax, [edx+ebx]
seg000:03A08D54                 add     esp, 0FFFFFFFCh
seg000:03A08D57                 push    esi
seg000:03A08D58                 push    eax
seg000:03A08D59                 mov     eax, [ebp+arg_pbaFile]
seg000:03A08D5C                 push    eax
seg000:03A08D5D                 call    memcpy
seg000:03A08D62                 mov     [ebp+arg_dwOffset], 0
seg000:03A08D69                 add     esp, 10h
seg000:03A08D6C                 jmp     short loc_3A08D91
seg000:03A08D6C; ---------------------------------------------------------------------------
seg000:03A08D6E                 db  89h; ë
seg000:03A08D6F                 db 0F6h; ÷
seg000:03A08D70; ---------------------------------------------------------------------------
seg000:03A08D70
seg000:03A08D70 loc_3A08D70:                           ; CODE XREF: BootIso9660GetFile+7Dj
seg000:03A08D70                 add     esp, 0FFFFFFF4h
seg000:03A08D73                 push    800h
seg000:03A08D78                 push    0
seg000:03A08D7A                 push    edi
seg000:03A08D7B                 mov     edx, [ebp+arg_pbaFile]
seg000:03A08D7E                 push    edx
seg000:03A08D7F                 push    1
seg000:03A08D81                 call    BootIdeReadSector
seg000:03A08D86                 add     esp, 20h
seg000:03A08D89                 test    eax, eax
seg000:03A08D8B                 jnz     loc_3A08CD4
seg000:03A08D91
seg000:03A08D91 loc_3A08D91:                           ; CODE XREF: BootIso9660GetFile+C0j
seg000:03A08D91                 inc     edi
seg000:03A08D92                 sub     [ebp+arg_dwFileLengthMax], esi
seg000:03A08D95                 add     [ebp+arg_pbaFile], esi
seg000:03A08D98                 cmp     [ebp+arg_dwFileLengthMax], 0
seg000:03A08D9C                 jnz     loc_3A08D10
seg000:03A08DA2
seg000:03A08DA2 loc_3A08DA2:                           ; CODE XREF: BootIso9660GetFile+5Aj
seg000:03A08DA2                 mov     eax, [ebp+var_828]
seg000:03A08DA8
seg000:03A08DA8 loc_3A08DA8:                           ; CODE XREF: BootIso9660GetFile+23j
seg000:03A08DA8                                        ; BootIso9660GetFile+2Dj
seg000:03A08DA8                 lea     esp, [ebp-848h]
seg000:03A08DAE                 pop     ebx
seg000:03A08DAF                 pop     esi
seg000:03A08DB0                 pop     edi
seg000:03A08DB1                 mov     esp, ebp
seg000:03A08DB3                 pop     ebp
seg000:03A08DB4                 retn
seg000:03A08DB4 BootIso9660GetFile endp
seg000:03A08DB4






Above, with just a small section of code, I believe I've shown that there is Cromwell code authored by Andy/Numbnut, released under the GPL, inside the SmartXX OS.  I've found similarities in several other sections of the code.  I haven't dug through 100% of the code, so don't know what percentage of SmartXX OS is Cromwell.


I'll eventually upload an ".idb" file (for IDA Pro) if anyone wants to take this further.

That's all for now...

- Paulb
Logged
Pages: 1 2 [3] 4 5 ... 7