Author Topic: Count APIs  (Read 1820 times)

jj2007

  • Member
  • *****
  • Posts: 7551
  • Assembler is fun ;-)
    • MasmBasic
Count APIs
« on: July 09, 2016, 03:49:50 AM »
Can I have some results from other OS versions, please?

Code: [Select]
Windows 7 Home Premium
Res
ctDll           341
ctDllBad        183
ctApi           13777
ctApiBad        906

Code: [Select]
Windows 10 Home
Res
ctDll           337
ctDllBad        185
ctApi           13735
ctApiBad        941

mabdelouahab

  • Member
  • ***
  • Posts: 335
Re: Count APIs
« Reply #1 on: July 09, 2016, 05:05:25 AM »
Win 8.1 x64 arabic

Vortex

  • Member
  • *****
  • Posts: 1704
Re: Count APIs
« Reply #2 on: July 09, 2016, 05:41:51 AM »
The application crashes on XP SP3 32-bit.

mineiro

  • Member
  • ***
  • Posts: 365
Re: Count APIs
« Reply #3 on: July 09, 2016, 05:47:29 AM »
Tested on wine using linux and crashes too, this is partial output. I have tried put native kernel32.dll into place of wine dll and same error happens, so, tested on wine xp and with kernel32.dll of xp SP1 x86-64.

Quote
mineiro@assembly:~/.wine/drive_c/getprotostab$ wine Getprotostab
fixme:file:FindFirstFileExW options not implemented 0x00000000 0x00000002
fixme:file:FindFirstFileExW options not implemented 0x00000000 0x00000002
fixme:file:FindFirstFileExW options not implemented 0x00000000 0x00000002
wine: Unhandled page fault on read access to 0x00000000 at address 0x405571 (thread 0027), starting debugger...
Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x00405571).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:00405571 ESP:0033fe0c EBP:0033fe54 EFLAGS:00010202(  R- --  I   - - - )
 EAX:00000000 EBX:00000001 ECX:00000000 EDX:00000002
 ESI:001900a8 EDI:00000002
Stack dump:
0x0033fe0c:  00000000 00000001 00000002 00000001
0x0033fe1c:  0033fe60 00408290 00000000 00000000
0x0033fe2c:  7846466f 7465592e 00000000 00000000
0x0033fe3c:  00000000 00000001 001900a8 00408290
0x0033fe4c:  00110000 0033fe78 0033fe78 0040119b
0x0033fe5c:  00040005 00000000 7b85e5cc 7ffdf000
Backtrace:
=>0 0x00405571 in getprotostab (+0x5571) (0x0033fe54)
  1 0x0040119b in getprotostab (+0x119a) (0x0033fe78)
  2 0x7b85f653 in kernel32 (+0x4f652) (0x0033feb8)
0x00405571: movb        0x0(%eax),%dl

I'd rather be this ambulant metamorphosis than to have that old opinion about everything

jj2007

  • Member
  • *****
  • Posts: 7551
  • Assembler is fun ;-)
    • MasmBasic
Re: Count APIs
« Reply #4 on: July 09, 2016, 06:05:37 AM »
Win 8.1 x64 arabic

That doesn't look nice :(
Can you try again with the attachment please?

P.S.: With the attachment posted above:
Code: [Select]
Microsoft Windows XP
Res
ctDll           341
ctDllBad        157
ctApi           14766
ctApiBad        305
::)

Thanks to everybody. Little question: Are you running the proggie on the same drive as the Masm32 installation? That's the only explanation I see so far...

Vortex

  • Member
  • *****
  • Posts: 1704
Re: Count APIs
« Reply #5 on: July 09, 2016, 06:14:43 AM »
Same result. The new version of the application crashes on XP SP3 32-bit.

HSE

  • Member
  • ****
  • Posts: 532
  • <AMD>< 7-32>
Re: Count APIs
« Reply #6 on: July 09, 2016, 06:48:14 AM »
DebugHeap : multiple exceptions

mabdelouahab

  • Member
  • ***
  • Posts: 335
Re: Count APIs
« Reply #7 on: July 09, 2016, 07:09:32 AM »
The same thing, an exception after this result

Quote
13230   [6      advapi32.inc Wow64Win32ApiEntry proTO STDCALL :DWORD,:DWORD,:DWO
RD]
13231   [324    winmm.inc WOWAppExit proTO STDCALL :DWORD]
13232   [335    wow32.inc WOWCallback16 proTO STDCALL :DWORD,:DWORD]
13233   [335    wow32.inc WOWCallback16Ex proTO STDCALL :DWORD,:DWORD,:DWORD,:DW
ORD,:DWORD]
13234   [335    wow32.inc WOWDirectedYield16 proTO STDCALL :DWORD]
13235   [335    wow32.inc WOWFreeMetafile proTO STDCALL :DWORD]
13236   [335    wow32.inc WOWGetVDMPointer proTO STDCALL :DWORD,:DWORD,:DWORD]
13237   [335    wow32.inc WOWGetVDMPointerFix proTO STDCALL :DWORD,:DWORD,:DWORD
]
13238   [335    wow32.inc WOWGetVDMPointerUnfix proTO STDCALL :DWORD]
13239   [335    wow32.inc WOWGlobalAlloc16 proTO STDCALL :DWORD,:DWORD]
13240   [335    wow32.inc WOWGlobalAllocLock16 proTO STDCALL :DWORD,:DWORD,:DWOR
D]
13241   [335    wow32.inc WOWGlobalFree16 proTO STDCALL :DWORD]
13242   [335    wow32.inc WOWGlobalLock16 proTO STDCALL :DWORD]
13243   [335    wow32.inc WOWGlobalLockSize16 proTO STDCALL :DWORD,:DWORD]
13244   [335    wow32.inc WOWGlobalUnlock16 proTO STDCALL :DWORD]
13245   [335    wow32.inc WOWGlobalUnlockFree16 proTO STDCALL :DWORD]
13246   [335    wow32.inc WOWHandle16 proTO STDCALL :DWORD,:DWORD]
13247   [335    wow32.inc WOWHandle32 proTO STDCALL :DWORD,:DWORD]
13248   [268    shell32.inc WOWShellExecute proTO STDCALL :DWORD,:DWORD,:DWORD,:
DWORD,:DWORD,:DWORD,:DWORD]
13249   [335    wow32.inc WOWUseMciavi16 proTO STDCALL]
13250   [335    wow32.inc WOWYield16 proTO STDCALL]
13251   [336    ws2_32.inc WPUCompleteOverlappedRequest proTO STDCALL :DWORD,:DW
ORD,:DWORD,:DWORD,:DWORD]
13252   [135    mapi32.inc WrapCompressedRTFStream proTO STDCALL :DWORD,:DWORD,:
DWORD]
13253   [135    mapi32.inc WrapProgress proTO STDCALL :DWORD,:DWORD,:DWORD,:DWOR
D,:DWORD]
13254   [135    mapi32.inc WrapStoreEntryID proTO STDCALL :DWORD,:DWORD,:DWORD,:
DWORD,:DWORD,:DWORD]
13255   [268    shell32.inc WriteCabinetState proTO STDCALL :DWORD]
13256   [209    ole32.inc WriteClassStg proTO STDCALL :DWORD,:DWORD]
13257   [209    ole32.inc WriteClassStm proTO STDCALL :DWORD,:DWORD]
13258   [119    kernel32.inc WriteConsoleA proTO STDCALL :DWORD,:DWORD,:DWORD,:D
WORD,:DWORD]
13259   [119    kernel32.inc WriteConsoleInputA proTO STDCALL :DWORD,:DWORD,:DWO
RD,:DWORD]
13260   [119    kernel32.inc WriteConsoleInputW proTO STDCALL :DWORD,:DWORD,:DWO
RD,:DWORD]
13267
Quote
004011E5  inc         eax 
004011E6  mov         dword ptr [ebx-78h],eax 
004011E9  push        0 
004011EB  push        407084h 
004011F0  push        eax 
004011F1  push        1 
004011F3  call        00404FFF 
004011F8  mov         dword ptr [ebx-74h],eax 
004011FB  lea         esi,[eax+5] 
004011FE  mov         dword ptr [eax+1],6C6C64h 
00401205  push        eax 
00401206  push        dword ptr [ebx-78h] 
00401209  call        004016A8 
0040120E  pop         edx 
0040120F  mov         dword ptr [edx+1],20636E69h 
00401216  or          eax,eax 
00401218  je          004012C4 
0040121E  push        eax 
0040121F  push        5 
EAX  00000000h
EBX   004082A0h   

LiaoMi

  • Member
  • **
  • Posts: 135
Re: Count APIs
« Reply #8 on: July 09, 2016, 08:35:14 AM »
The application crashes on Windows 10.0.10586  ::)


PS - small correction, if you dont run from the temporary folder, then everything works fine.

jj2007

  • Member
  • *****
  • Posts: 7551
  • Assembler is fun ;-)
    • MasmBasic
Re: Count APIs
« Reply #9 on: July 09, 2016, 08:55:31 AM »
Oh well ::)

One more attempt, see attachment. I should really check more often the results - sorry for my stupid errors:
- one crash caused if launched from a non-Masm32 drive (no inc files...)
- another one if user has somefile.INC instead of somefile.inc

Both are corrected, and I hope it works now 8)

LiaoMi

  • Member
  • **
  • Posts: 135
Re: Count APIs
« Reply #10 on: July 09, 2016, 09:18:33 AM »
Code: [Select]
13754
Windows 10 Enterprise
Res
ctDll           344
ctDllBad        190
ctApi           13754
ctApiBad        944

mabdelouahab

  • Member
  • ***
  • Posts: 335
Re: Count APIs
« Reply #11 on: July 09, 2016, 09:54:20 AM »
Code: [Select]
13747
Windows 8.1 Enterprise
Res
ctDll           345
ctDllBad        187
ctApi           13747
ctApiBad        941

jj2007

  • Member
  • *****
  • Posts: 7551
  • Assembler is fun ;-)
    • MasmBasic
Re: Count APIs
« Reply #12 on: July 09, 2016, 10:01:06 AM »
Code: [Select]
ctDll           345
ctDllBad        187
ctApi           13747
ctApiBad        941

Thanks a lot :icon14:

For info: This proggie searches \Masm32\Include\*.inc for PROTO entries, and checks
a) if the DLL with the same name loads via LoadLibrary
b) if the API calls are available with GetProcAddress

guga

  • Member
  • ****
  • Posts: 826
  • Assembly is a state of art.
    • RosAsm
Re: Count APIs
« Reply #13 on: July 09, 2016, 02:09:20 PM »
Hi JJ

Code: [Select]
Microsoft Windows XP
Res
ctDll 327
ctDllBad 151
ctApi 14453
ctApiBad 325
Coding in Assembly requires a mix of:
80% of brain, passion, intuition, creativity
10% of programming skills
10% of alcoholic levels in your blood.

My Code Sites:
http://rosasm.freeforums.org
http://winasm.tripod.com

Vortex

  • Member
  • *****
  • Posts: 1704
Re: Count APIs
« Reply #14 on: July 09, 2016, 08:09:30 PM »
Here are the results :

Code: [Select]
14791
Microsoft Windows XP
Res
ctDll           337
ctDllBad        154
ctApi           14791
ctApiBad        304