Hex Artifact Content Вы: nobody
Вход

Artifact a239d11984a0fc98395256966f5733a9699f7e55:


0000: 2f 2a 0d 0a 66 69 78 5f 62 61 73 69 63 2e 69 6e  /*..fix_basic.in
0010: 6c 0d 0a 28 63 29 20 c0 eb e5 ea f1 e0 ed e4 f0  l..(c) .........
0020: 20 ce f0 e5 f4 ea ee e2 0d 0a d4 e0 e9 eb 20 e4   ............. .
0030: eb ff 20 f0 e5 f8 e5 ed e8 ff 20 ef f0 ee e1 eb  .. ....... .....
0040: e5 ec fb 20 ef f0 e8 20 ed e5 ee e1 f5 ee e4 e8  ... ... ........
0050: ec ee f1 f2 e8 20 f1 f2 e0 f2 e8 f7 e5 f1 ea ee  ..... ..........
0060: e9 20 eb e8 ed ea ee e2 ea e8 0d 0a f1 20 62 61  . ........... ba
0070: 73 69 63 2e 64 6c 6c 20 e2 20 ec ee e4 f3 eb ff  sic.dll . ......
0080: f5 2c 20 ea ee f2 ee f0 fb e5 20 e4 ee eb e6 ed  ., ....... .....
0090: fb 20 ef ee e4 e3 f0 f3 e6 e0 f2 fc f1 ff 20 ef  . ............ .
00a0: f0 e8 20 f1 e0 ec ee ec 20 f1 f2 e0 f0 f2 e5 20  .. ..... ...... 
00b0: 31 d1 ea e8 2e 0d 0a 09 d1 f3 f2 fc 20 ef f0 ee  1........... ...
00c0: e1 eb e5 ec fb 3a 0d 0a 62 61 73 69 63 2e 64 6c  .....:..basic.dl
00d0: 6c 20 e2 20 f1 e2 ee e5 e9 20 ef f0 ee f6 e5 e4  l . ..... ......
00e0: f3 f0 e5 20 44 6c 6c 4d 61 69 6e 20 ef f0 e8 20  ... DllMain ... 
00f0: e7 e0 e3 f0 f3 e7 ea e5 20 e2 fb ef ee eb ed ff  ........ .......
0100: e5 f2 20 e4 e5 e9 f1 f2 e2 e8 ff 2c 0d 0a f0 e0  .. ........,....
0110: f1 f1 f7 e8 f2 e0 ed ed fb e5 20 ed e0 20 f2 ee  .......... .. ..
0120: 2c 20 f7 f2 ee 20 43 57 69 6e 41 70 70 20 e2 20  , ... CWinApp . 
0130: 31 63 76 37 2e 65 78 65 20 f3 e6 e5 20 ef f0 ee  1cv7.exe ... ...
0140: e8 ed e8 f6 e0 eb e8 e7 e8 f0 ee e2 e0 ed 2c 0d  ..............,.
0150: 0a e0 20 ef f0 e8 20 e2 fb e3 f0 f3 e7 ea e5 20  .. ... ........ 
0160: 2d 20 ed e0 20 f2 ee 2c 20 f7 f2 ee 20 43 57 69  - .. .., ... CWi
0170: 6e 41 70 70 20 e2 20 31 63 76 37 2e 65 78 65 20  nApp . 1cv7.exe 
0180: e5 f9 e5 20 ef f0 ee e8 ed e8 f6 e0 eb e8 e7 e8  ... ............
0190: f0 ee e2 e0 ed 2e 0d 0a cf f0 e8 20 f1 f2 e0 f2  ........... ....
01a0: e8 f7 e5 f1 ea ee e9 20 eb e8 ed ea ee e2 ea e5  ....... ........
01b0: 20 f0 e0 e7 f0 e0 e1 e0 f2 fb e2 e0 e5 ec ee e3   ...............
01c0: ee 20 ec ee e4 f3 eb ff 20 f1 20 62 61 73 69 63  . ...... . basic
01d0: 2e 64 6c 6c 2c 20 ea ee e3 e4 e0 0d 0a ec ee e4  .dll, ..........
01e0: f3 eb fc 20 ef fb f2 e0 e5 f2 f1 ff 20 e7 e0 e3  ... ........ ...
01f0: f0 f3 e7 e8 f2 f1 ff 2c 20 44 6c 6c 4d 61 69 6e  ......., DllMain
0200: 20 e2 20 62 61 73 69 63 2e 64 6c 6c 20 e2 ee e7   . basic.dll ...
0210: e2 f0 e0 f9 e0 e5 f2 20 30 2c 0d 0a f2 ea 20 43  ....... 0,.... C
0220: 57 69 6e 41 70 70 20 e5 f9 e5 20 ed e5 20 ef f0  WinApp ... .. ..
0230: ee e8 ed e8 f6 e8 e0 eb e8 e7 e8 f0 ee e2 e0 ed  ................
0240: 2c 20 ef ee fd f2 ee ec f3 20 ec ee e4 f3 eb fc  , ....... ......
0250: 20 ed e5 20 ec ee e6 e5 f2 20 e7 e0 e3 f0 f3 e7   .. ..... ......
0260: e8 f2 f1 ff 2e 0d 0a 0d 0a 09 d0 e5 f8 e5 ed e8  ................
0270: e5 20 2d 20 ee f2 eb ee e6 e5 ed ed e0 ff 20 eb  . - .......... .
0280: e8 ed ea ee e2 ea e0 2c 20 f0 e5 e0 eb e8 e7 f3  ......., .......
0290: e5 ec e0 ff 20 eb e8 ed ea e5 f0 ee ec 20 56 43  .... ........ VC
02a0: 2b 2b 2c 20 e8 20 e4 e0 ed ed fb ec 20 ea ee e4  ++, . ...... ...
02b0: ee ec 20 e2 0d 0a f0 e0 e7 f0 e0 e1 e0 f2 fb e2  .. .............
02c0: e0 e5 ec ee ec 20 ec ee e4 f3 eb e5 2e 20 ca ee  ..... ....... ..
02d0: e4 20 eb ee e3 e8 f7 ed e5 e5 20 e2 f1 e5 e3 ee  . ........ .....
02e0: 20 ef ee e4 ea eb fe f7 e0 f2 fc 20 ea e0 ea 0d   .......... ....
02f0: 0a 0d 0a 23 69 6e 63 6c 75 64 65 20 22 66 69 78  ...#include "fix
0300: 5f 62 61 73 69 63 2e 69 6e 6c 22 0d 0a 0d 0a e2  _basic.inl".....
0310: 20 73 74 64 61 66 78 2e 63 70 70 0d 0a 0d 0a 09   stdafx.cpp.....
0320: c2 ee e7 ec ee e6 ed fb e5 20 ef f0 ee e1 eb e5  ......... ......
0330: ec fb 3a 0d 0a d2 e0 e1 eb e8 f6 e0 20 e8 ec ef  ..:......... ...
0340: ee f0 f2 e0 20 e8 e7 20 62 61 73 69 63 2e 64 6c  .... .. basic.dl
0350: 6c 20 e8 ed e8 f6 e8 e0 eb e8 e7 e8 f0 f3 e5 f2  l ..............
0360: f1 ff 20 ef f0 e8 20 ef e5 f0 e2 ee ec 20 e2 fb  .. ... ...... ..
0370: e7 ee e2 e5 20 eb fe e1 ee e9 0d 0a f4 f3 ed ea  .... ...........
0380: f6 e8 e8 20 e8 e7 20 62 61 73 69 63 2e 64 6c 6c  ... .. basic.dll
0390: 2e 20 c5 f1 eb e8 20 ef e5 f0 e2 fb ec 20 e2 20  . .... ...... . 
03a0: ef f0 ee e3 f0 e0 ec ec e5 20 e1 f3 e4 e5 f2 20  ......... ..... 
03b0: ee e1 f0 e0 f9 e5 ed e8 e5 20 ed e5 20 ea 20 f4  ......... .. . .
03c0: f3 ed ea f6 e8 e8 2c 0d 0a e0 20 ea 20 e8 ec ef  ......,... . ...
03d0: ee f0 f2 e8 f0 f3 e5 ec fb ec 20 e4 e0 ed ed fb  .......... .....
03e0: ec 2c 20 f2 ee 20 e2 20 fd f2 ee ec 20 f1 eb f3  ., .. . .... ...
03f0: f7 e0 e5 20 ea ee e4 20 e8 ed e8 f6 e8 e0 eb e8  ... ... ........
0400: e7 e0 f6 e8 e8 20 f2 e0 e1 eb e8 f6 fb 20 e8 ec  ..... ....... ..
0410: ef ee f0 f2 e0 0d 0a ed e5 20 e1 f3 e4 e5 f2 20  ......... ..... 
0420: e2 fb ef ee eb ed e5 ed 2c 20 e0 20 ee e1 f0 e0  ........, . ....
0430: f9 e5 ed e8 e5 20 ea 20 e4 e0 ed ed fb ec 20 e1  ..... . ...... .
0440: f3 e4 e5 f2 20 ed e5 e2 e5 f0 ed fb ec 2e 0d 0a  .... ...........
0450: 09 d4 f3 ed ea f6 e8 ff 2d e7 e0 e3 f0 f3 e7 f7  ........-.......
0460: e8 ea 20 e6 e5 f1 f2 ea ee 20 ef f0 ee f8 e8 f2  .. ...... ......
0470: e0 20 ed e0 20 ef f0 e8 e2 ff e7 ea f3 20 ea 20  . .. ........ . 
0480: 62 61 73 69 63 2e 64 6c 6c 2e 20 c5 f1 eb e8 20  basic.dll. .... 
0490: e2 e0 ec 0d 0a ed e5 ee e1 f5 ee e4 e8 ec ee 20  ............... 
04a0: ee f1 f3 f9 e5 f1 f2 e2 eb ff f2 fc 20 ee f2 eb  ............ ...
04b0: ee e6 e5 ed ed f3 fe 20 eb e8 ed ea ee e2 ea f3  ....... ........
04c0: 20 e4 f0 f3 e3 e8 f5 20 e1 e8 e1 eb e8 ee f2 e5   ...... ........
04d0: ea 2c 20 ed e5 20 e8 f1 ef ee eb fc e7 f3 e9 f2  ., .. ..........
04e0: e5 0d 0a fd f2 f3 20 f0 e5 e0 eb e8 e7 e0 f6 e8  ...... .........
04f0: fe 2e 20 cf f0 e8 ec e5 ed e8 f2 e5 20 f1 f2 e0  .. ......... ...
0500: ed e4 e0 f0 f2 ed f3 fe 2c 20 eb e8 e1 ee 20 ed  ........, .... .
0510: e0 ef e8 f8 e8 f2 e5 20 f1 e2 ee fe 2e 0d 0a ce  ....... ........
0520: f1 ed ee e2 ed ee e5 20 ee f2 eb e8 f7 e8 e5 20  ....... ....... 
0530: fd f2 ee e9 20 f0 e5 e0 eb e8 e7 e0 f6 e8 e8 20  .... .......... 
0540: 2d 20 ef f0 e8 20 ef e5 f0 e2 ee ec 20 e2 fb e7  - ... ...... ...
0550: ee e2 e5 20 e4 eb ff 20 e4 e0 ed ed ee e9 20 e4  ... ... ...... .
0560: eb eb 0d 0a e8 ed e8 f6 e8 e0 eb e8 e7 e8 f0 f3  ................
0570: e5 f2 f1 ff 20 e2 f1 ff 20 f2 e0 e1 eb e8 f6 e0  .... ... .......
0580: 20 e8 ec ef ee f0 f2 e0 2c 20 e0 20 ed e5 20 ee   ......., . .. .
0590: e4 e8 ed 20 e0 e4 f0 e5 f1 2e 20 c4 eb ff 20 f2  ... ...... ... .
05a0: ee e3 ee 20 f7 f2 ee e1 fb 0d 0a ea ee f0 f0 e5  ... ............
05b0: ea f2 ed ee 20 e2 fb ef ee eb ed ff eb ee f1 fc  .... ...........
05c0: 20 ee e1 f0 e0 f9 e5 ed e8 e5 20 ea 20 e8 ec ef   ......... . ...
05d0: ee f0 f2 e8 f0 f3 e5 ec fb ec 20 e8 e7 20 e4 eb  .......... .. ..
05e0: eb 20 e4 e0 ed ed fb ec 2e 0d 0a ca f0 ee ec e5  . ..............
05f0: 20 f2 ee e3 ee 2c 20 e2 ec e5 f1 f2 ee 20 4c 6f   ...., ...... Lo
0600: 61 64 4c 69 62 72 61 72 79 20 ef f0 e8 ec e5 ed  adLibrary ......
0610: ff e5 f2 f1 ff 20 47 65 74 4d 6f 64 75 6c 65 48  ..... GetModuleH
0620: 61 6e 64 6c 65 2c 20 e4 eb ff 20 f2 ee e3 ee 2c  andle, ... ....,
0630: 0d 0a f7 f2 ee e1 fb 20 ed e5 20 f3 e2 e5 eb e8  ....... .. .....
0640: f7 e8 e2 e0 f2 fc 20 f1 f7 e5 f2 f7 e8 ea 20 e7  ...... ....... .
0650: e0 e3 f0 f3 e7 ee ea 20 e4 eb eb 2c 20 e8 ed e0  ....... ..., ...
0660: f7 e5 20 ee ed e0 20 ed e5 20 e1 f3 e4 e5 f2 20  .. ... .. ..... 
0670: e2 fb e3 f0 f3 e6 e0 f2 fc f1 ff 0d 0a e2 ee e2  ................
0680: f0 e5 ec ff 2c 20 f7 f2 ee 20 ef f0 e8 e2 ee e4  ...., ... ......
0690: e8 f2 20 ea 20 ef e0 e4 e5 ed e8 ff ec 20 ef f0  .. . ........ ..
06a0: e8 20 e2 fb f5 ee e4 e5 20 e8 e7 20 ef f0 ee e3  . ...... .. ....
06b0: f0 e0 ec ec fb 2e 20 d2 e0 ea e8 ec 20 ee e1 f0  ...... ..... ...
06c0: e0 e7 ee ec 2c 0d 0a ed e5 20 ef ee eb f3 f7 e8  ....,.... ......
06d0: f2 f1 ff 20 ee e1 f0 e0 f9 e0 f2 fc f1 ff 20 ea  ... .......... .
06e0: 20 ec e5 f2 ee e4 e0 ec 20 62 61 73 69 63 2e 64   ....... basic.d
06f0: 6c 6c 20 e4 ee 20 f2 ee e3 ee 2c 20 ea e0 ea 20  ll .. ...., ... 
0700: ee ed e0 20 e1 f3 e4 e5 f2 0d 0a e7 e0 e3 f0 f3  ... ............
0710: e6 e5 ed e0 20 f1 e0 ec ee e9 20 31 d1 2e 0d 0a  .... ..... 1....
0720: 2a 2f 0d 0a 0d 0a 23 69 6e 63 6c 75 64 65 20 3c  */....#include <
0730: 64 65 6c 61 79 69 6d 70 2e 68 3e 0d 0a 0d 0a 23  delayimp.h>....#
0740: 70 72 61 67 6d 61 20 63 6f 6d 6d 65 6e 74 28 6c  pragma comment(l
0750: 69 6e 6b 65 72 2c 20 22 2f 64 65 6c 61 79 6c 6f  inker, "/delaylo
0760: 61 64 3a 62 61 73 69 63 2e 64 6c 6c 22 29 0d 0a  ad:basic.dll")..
0770: 0d 0a 2f 2f 20 d4 f3 ed ea f6 e8 ff 20 e8 ed e8  ..// ....... ...
0780: f6 e8 e0 eb e8 e7 e0 f6 e8 e8 20 f2 e0 e1 eb e8  .......... .....
0790: f6 fb 20 e8 ec ef ee f0 f2 e0 2e 0d 0a 2f 2f 20  .. ..........// 
07a0: d0 e5 e0 eb e8 e7 ee e2 e0 ed e0 20 e2 20 f0 e0  ........... . ..
07b0: f1 f7 e5 f2 e5 20 ed e0 20 ee e4 ed ee ef ee f2  ..... .. .......
07c0: ee f7 ed ee e5 20 ef f0 e8 eb ee e6 e5 ed e8 e5  ..... ..........
07d0: 2e 0d 0a 2f 2f 20 ce f1 ed ee e2 e0 ed e0 20 ed  ...// ........ .
07e0: e0 20 ee f0 e8 e3 e8 ed e0 eb fc ed ee ec 20 ea  . ............ .
07f0: ee e4 e5 20 4d 53 20 e2 20 56 43 39 38 5c 49 6e  ... MS . VC98\In
0800: 63 6c 75 64 65 5c 64 65 6c 61 79 68 6c 70 2e 63  clude\delayhlp.c
0810: 70 70 0d 0a 65 78 74 65 72 6e 20 22 43 22 20 46  pp..extern "C" F
0820: 41 52 50 52 4f 43 20 57 49 4e 41 50 49 20 5f 5f  ARPROC WINAPI __
0830: 64 65 6c 61 79 4c 6f 61 64 48 65 6c 70 65 72 28  delayLoadHelper(
0840: 50 43 49 6d 67 44 65 6c 61 79 44 65 73 63 72 20  PCImgDelayDescr 
0850: 70 69 64 64 2c 20 46 41 52 50 52 4f 43 20 2a 70  pidd, FARPROC *p
0860: 70 66 6e 49 41 54 45 6e 74 72 79 29 0d 0a 7b 0d  pfnIATEntry)..{.
0870: 0a 09 48 49 4e 53 54 41 4e 43 45 20 68 49 6e 73  ..HINSTANCE hIns
0880: 74 20 3d 20 2a 70 69 64 64 2d 3e 70 68 6d 6f 64  t = *pidd->phmod
0890: 3b 0d 0a 09 69 66 28 21 68 49 6e 73 74 29 0d 0a  ;...if(!hInst)..
08a0: 09 7b 0d 0a 09 09 2f 2f 20 cf ee eb f3 f7 e0 e5  .{....// .......
08b0: ec 20 ec ee e4 f3 eb fc 0d 0a 09 09 68 49 6e 73  . ..........hIns
08c0: 74 20 3d 20 47 65 74 4d 6f 64 75 6c 65 48 61 6e  t = GetModuleHan
08d0: 64 6c 65 28 70 69 64 64 2d 3e 73 7a 4e 61 6d 65  dle(pidd->szName
08e0: 29 3b 0d 0a 09 09 69 66 28 21 68 49 6e 73 74 29  );....if(!hInst)
08f0: 0d 0a 09 09 7b 0d 0a 09 09 09 4d 65 73 73 61 67  ....{.....Messag
0900: 65 42 6f 78 28 4e 55 4c 4c 2c 20 22 cf ee ef fb  eBox(NULL, "....
0910: f2 ea e0 20 ee e1 f0 e0 f9 e5 ed e8 ff 20 ea 20  ... ......... . 
0920: 62 61 73 69 63 2e 64 6c 6c 20 e4 ee 20 e5 e5 20  basic.dll .. .. 
0930: e7 e0 e3 f0 f3 e7 ea e8 22 2c 20 30 2c 20 30 29  ........", 0, 0)
0940: 3b 0d 0a 09 09 09 72 65 74 75 72 6e 20 4e 55 4c  ;.....return NUL
0950: 4c 3b 0d 0a 09 09 7d 0d 0a 09 09 2a 70 69 64 64  L;....}....*pidd
0960: 2d 3e 70 68 6d 6f 64 20 3d 20 68 49 6e 73 74 3b  ->phmod = hInst;
0970: 0d 0a 09 09 2f 2f 20 d2 e5 ef e5 f0 fc 20 ed e0  ....// ...... ..
0980: e4 ee 20 e7 e0 ef ee eb ed e8 f2 fc 20 e2 f1 fe  .. ......... ...
0990: 20 f2 e0 e1 eb e8 f6 f3 20 e8 ec ef ee f0 f2 e0   ....... .......
09a0: 2e 0d 0a 09 09 2f 2f 20 c5 f1 eb e8 20 e5 f1 f2  .....// .... ...
09b0: fc 20 ef f0 e8 e1 e8 ed e4 e5 ed ed e0 ff 20 f2  . ............ .
09c0: e0 e1 eb e8 f6 e0 2c 20 ef f0 ee f1 f2 ee 20 f1  ......, ...... .
09d0: ea ee ef e8 f0 f3 e5 ec 20 e5 e5 2c 0d 0a 09 09  ........ ..,....
09e0: 2f 2f 20 e0 20 e8 ed e0 f7 e5 20 ef f0 ee e9 e4  // . ..... .....
09f0: e5 ec f1 ff 20 e2 20 f6 e8 ea eb e5 20 ef ee 20  .... . ..... .. 
0a00: e2 f1 e5 e9 20 f2 e0 e1 eb e8 f6 e5 2c 20 e2 fb  .... ......., ..
0a10: e7 fb e2 e0 ff 20 47 65 74 50 72 6f 63 41 64 64  ..... GetProcAdd
0a20: 72 65 73 73 0d 0a 09 09 44 57 4f 52 44 20 64 77  ress....DWORD dw
0a30: 49 64 78 20 3d 20 49 6e 64 65 78 46 72 6f 6d 50  Idx = IndexFromP
0a40: 49 6d 67 54 68 75 6e 6b 44 61 74 61 28 50 43 49  ImgThunkData(PCI
0a50: 6d 67 54 68 75 6e 6b 44 61 74 61 28 70 70 66 6e  mgThunkData(ppfn
0a60: 49 41 54 45 6e 74 72 79 29 2c 20 70 69 64 64 2d  IATEntry), pidd-
0a70: 3e 70 49 41 54 29 3b 0d 0a 09 09 44 57 4f 52 44  >pIAT);....DWORD
0a80: 20 64 77 49 6d 70 6f 72 74 73 20 3d 20 43 6f 75   dwImports = Cou
0a90: 6e 74 4f 66 49 6d 70 6f 72 74 73 28 70 69 64 64  ntOfImports(pidd
0aa0: 2d 3e 70 49 41 54 29 3b 0d 0a 09 09 0d 0a 09 09  ->pIAT);........
0ab0: 69 66 28 70 69 64 64 2d 3e 70 42 6f 75 6e 64 49  if(pidd->pBoundI
0ac0: 41 54 20 26 26 20 70 69 64 64 2d 3e 64 77 54 69  AT && pidd->dwTi
0ad0: 6d 65 53 74 61 6d 70 29 0d 0a 09 09 7b 0d 0a 09  meStamp)....{...
0ae0: 09 09 2f 2f 20 62 6f 75 6e 64 20 69 6d 70 6f 72  ..// bound impor
0af0: 74 73 20 65 78 69 73 74 2e 2e 2e 63 68 65 63 6b  ts exist...check
0b00: 20 74 68 65 20 74 69 6d 65 73 74 61 6d 70 20 66   the timestamp f
0b10: 72 6f 6d 20 74 68 65 20 74 61 72 67 65 74 20 69  rom the target i
0b20: 6d 61 67 65 0d 0a 09 09 09 50 49 4d 41 47 45 5f  mage.....PIMAGE_
0b30: 4e 54 5f 48 45 41 44 45 52 53 20 70 69 6e 68 20  NT_HEADERS pinh 
0b40: 3d 20 50 49 4d 41 47 45 5f 4e 54 5f 48 45 41 44  = PIMAGE_NT_HEAD
0b50: 45 52 53 28 50 43 48 41 52 28 68 49 6e 73 74 29  ERS(PCHAR(hInst)
0b60: 20 2b 20 50 49 4d 41 47 45 5f 44 4f 53 5f 48 45   + PIMAGE_DOS_HE
0b70: 41 44 45 52 28 68 49 6e 73 74 29 2d 3e 65 5f 6c  ADER(hInst)->e_l
0b80: 66 61 6e 65 77 29 3b 0d 0a 09 09 09 0d 0a 09 09  fanew);.........
0b90: 09 69 66 28 70 69 6e 68 2d 3e 53 69 67 6e 61 74  .if(pinh->Signat
0ba0: 75 72 65 20 3d 3d 20 49 4d 41 47 45 5f 4e 54 5f  ure == IMAGE_NT_
0bb0: 53 49 47 4e 41 54 55 52 45 20 26 26 0d 0a 09 09  SIGNATURE &&....
0bc0: 09 09 70 69 6e 68 2d 3e 46 69 6c 65 48 65 61 64  ..pinh->FileHead
0bd0: 65 72 2e 54 69 6d 65 44 61 74 65 53 74 61 6d 70  er.TimeDateStamp
0be0: 20 3d 3d 20 70 69 64 64 2d 3e 64 77 54 69 6d 65   == pidd->dwTime
0bf0: 53 74 61 6d 70 20 26 26 0d 0a 09 09 09 09 44 57  Stamp &&......DW
0c00: 4f 52 44 28 68 49 6e 73 74 29 20 3d 3d 20 70 69  ORD(hInst) == pi
0c10: 6e 68 2d 3e 4f 70 74 69 6f 6e 61 6c 48 65 61 64  nh->OptionalHead
0c20: 65 72 2e 49 6d 61 67 65 42 61 73 65 29 0d 0a 09  er.ImageBase)...
0c30: 09 09 7b 0d 0a 09 09 09 09 6d 65 6d 63 70 79 28  ..{......memcpy(
0c40: 70 69 64 64 2d 3e 70 49 41 54 2c 20 70 69 64 64  pidd->pIAT, pidd
0c50: 2d 3e 70 42 6f 75 6e 64 49 41 54 2c 20 64 77 49  ->pBoundIAT, dwI
0c60: 6d 70 6f 72 74 73 20 2a 20 73 69 7a 65 6f 66 20  mports * sizeof 
0c70: 49 4d 41 47 45 5f 54 48 55 4e 4b 5f 44 41 54 41  IMAGE_THUNK_DATA
0c80: 29 3b 0d 0a 09 09 09 09 72 65 74 75 72 6e 20 46  );......return F
0c90: 41 52 50 52 4f 43 28 70 69 64 64 2d 3e 70 49 41  ARPROC(pidd->pIA
0ca0: 54 5b 64 77 49 64 78 5d 2e 75 31 2e 46 75 6e 63  T[dwIdx].u1.Func
0cb0: 74 69 6f 6e 29 3b 0d 0a 09 09 09 7d 0d 0a 09 09  tion);.....}....
0cc0: 7d 0d 0a 09 09 2f 2f 20 cd e5 20 f3 e4 e0 eb ee  }....// .. .....
0cd0: f1 fc 20 ef f0 e8 e2 ff e7 e0 f2 f1 ff 20 ea 20  .. .......... . 
0ce0: ef f0 e8 e1 e8 ed e4 e5 ed ed ee e9 20 f2 e0 e1  ............ ...
0cf0: eb e8 f6 e5 2e 0d 0a 09 09 2f 2f 20 c1 f3 e4 e5  .........// ....
0d00: ec 20 e7 e2 e0 f2 fc 20 47 65 74 50 72 6f 63 41  . ..... GetProcA
0d10: 64 64 72 65 73 0d 0a 09 09 50 49 6d 67 54 68 75  ddres....PImgThu
0d20: 6e 6b 44 61 74 61 20 70 57 72 69 74 65 20 3d 20  nkData pWrite = 
0d30: 70 69 64 64 2d 3e 70 49 41 54 3b 0d 0a 09 09 50  pidd->pIAT;....P
0d40: 43 49 6d 67 54 68 75 6e 6b 44 61 74 61 20 70 52  CImgThunkData pR
0d50: 65 61 64 20 3d 20 70 69 64 64 2d 3e 70 49 4e 54  ead = pidd->pINT
0d60: 3b 0d 0a 09 09 66 6f 72 28 44 57 4f 52 44 20 69  ;....for(DWORD i
0d70: 64 78 20 3d 20 30 3b 20 69 64 78 20 3c 20 64 77  dx = 0; idx < dw
0d80: 49 6d 70 6f 72 74 73 3b 20 69 64 78 2b 2b 29 0d  Imports; idx++).
0d90: 0a 09 09 7b 0d 0a 09 09 09 70 57 72 69 74 65 2d  ...{.....pWrite-
0da0: 3e 75 31 2e 46 75 6e 63 74 69 6f 6e 20 3d 20 28  >u1.Function = (
0db0: 50 44 57 4f 52 44 29 47 65 74 50 72 6f 63 41 64  PDWORD)GetProcAd
0dc0: 64 72 65 73 73 28 68 49 6e 73 74 2c 0d 0a 09 09  dress(hInst,....
0dd0: 09 09 28 70 52 65 61 64 2d 3e 75 31 2e 4f 72 64  ..(pRead->u1.Ord
0de0: 69 6e 61 6c 20 26 20 49 4d 41 47 45 5f 4f 52 44  inal & IMAGE_ORD
0df0: 49 4e 41 4c 5f 46 4c 41 47 29 20 3f 0d 0a 09 09  INAL_FLAG) ?....
0e00: 09 09 28 4c 50 43 53 54 52 29 20 70 52 65 61 64  ..(LPCSTR) pRead
0e10: 2d 3e 75 31 2e 4f 72 64 69 6e 61 6c 20 3a 0d 0a  ->u1.Ordinal :..
0e20: 09 09 09 09 28 4c 50 43 53 54 52 29 20 70 52 65  ....(LPCSTR) pRe
0e30: 61 64 2d 3e 75 31 2e 41 64 64 72 65 73 73 4f 66  ad->u1.AddressOf
0e40: 44 61 74 61 2d 3e 4e 61 6d 65 29 3b 0d 0a 09 09  Data->Name);....
0e50: 09 70 52 65 61 64 2b 2b 2c 20 70 57 72 69 74 65  .pRead++, pWrite
0e60: 2b 2b 3b 0d 0a 09 09 7d 0d 0a 09 09 72 65 74 75  ++;....}....retu
0e70: 72 6e 20 46 41 52 50 52 4f 43 28 70 69 64 64 2d  rn FARPROC(pidd-
0e80: 3e 70 49 41 54 5b 64 77 49 64 78 5d 2e 75 31 2e  >pIAT[dwIdx].u1.
0e90: 46 75 6e 63 74 69 6f 6e 29 3b 0d 0a 09 7d 0d 0a  Function);...}..
0ea0: 09 72 65 74 75 72 6e 20 4e 55 4c 4c 3b 0d 0a 7d  .return NULL;..}
0eb0: 0d 0a                                            ..