Valhalla Legends Forums Archive | Battle.net Bot Development | ULONGLONG in PHP?

AuthorMessageTime
MyStiCaL
[code]0x1A
BNLS_VERSIONCHECKEX2

(DWORD) Product ID.*
(DWORD) Flags.**
(DWORD) Cookie.
(ULONGLONG) Timestamp for version check archive.
(STRING) Version check archive filename.
(STRING) Checksum formula
[/code]

anyone know how i can mimic the ULONGLONG in php? I'm a bit stumped.
February 17, 2009, 10:42 AM
HdxBmx27
I don't think PHP supports 64-bit ints, if not, just treat it as a set of 2 32-bit ints.  Its jsut the filetime, not really used for anything.
February 17, 2009, 3:27 PM
Myndfyr
[quote author=Hdx link=topic=17831.msg181664#msg181664 date=1234884433]
I don't think PHP supports 64-bit ints, if not, just treat it as a set of 2 32-bit ints.  Its jsut the filetime, not really used for anything.
[/quote]
You're correct; it does not.
February 17, 2009, 4:30 PM
chyea
A FILETIME is defined as ...

[code]
typedef struct _FILETIME {
  DWORD dwLowDateTime;
  DWORD dwHighDateTime;
} FILETIME,
*PFILETIME;
[/code]

... per MSDN.
February 17, 2009, 10:22 PM
Myndfyr
[quote author=chyea link=topic=17831.msg181666#msg181666 date=1234909368]
A FILETIME is defined as ...

[code]
typedef struct _FILETIME {
  DWORD dwLowDateTime;
  DWORD dwHighDateTime;
} FILETIME,
*PFILETIME;
[/code]

... per MSDN.
[/quote]

That definition is written in that manner because, back in the day, there wasn't support in C compilers for __int64.  While it's technically accurate it really doesn't provide any meaningful value to someone who's trying to reverse-engineer the actual date, other than to say that you could possibly translate with some fancy bit math.
February 17, 2009, 11:46 PM
chyea
[quote author=MyndFyre[vL] link=topic=17831.msg181668#msg181668 date=1234914384]
[quote author=chyea link=topic=17831.msg181666#msg181666 date=1234909368]
A FILETIME is defined as ...

[code]
typedef struct _FILETIME {
  DWORD dwLowDateTime;
  DWORD dwHighDateTime;
} FILETIME,
*PFILETIME;
[/code]

... per MSDN.
[/quote]

That definition is written in that manner because, back in the day, there wasn't support in C compilers for __int64.  While it's technically accurate it really doesn't provide any meaningful value to someone who's trying to reverse-engineer the actual date, other than to say that you could possibly translate with some fancy bit math.
[/quote]

Well, thank god the reverse engineering here has already been done, eh? That definition can be recreated in PHP fairly easily, I think.
February 18, 2009, 6:05 AM
HdxBmx27
Huah reverse engineering?
Its a 64-bit unsigned int. If your language can not handle that large of a number, split it up, this number in particular is really of no use {unless you're going to download the file from bnftp} so does it really matter?
February 18, 2009, 6:08 AM
Barabajagal
[quote]The size of an integer is platform-dependent, although a maximum value of about two billion is the usual value (that's 32 bits signed). PHP does not support unsigned integers. Integer size can be determined using the constant PHP_INT_SIZE, and maximum value using the constant PHP_INT_MAX since PHP 4.4.0 and PHP 5.0.5.[/quote]
Fully documented language FTW
February 18, 2009, 7:34 AM

Search