1. 程式人生 > >windows xp下的NOTEPAD用最新x86外掛轉換的結果

windows xp下的NOTEPAD用最新x86外掛轉換的結果

windows xp下的NOTEPAD用最新ida x86 1.8外掛轉換的結果 轉換結果非常理想文字限制發一半吧! 大老 部落格:http://blog.sina.com.cn/dalao 網站: http://www.40440.cn qq:79234668 201307 以下是轉換結果
/* This file has been generated by the Hex-Rays decompiler.    Copyright (c) 2007-2013 Hex-Rays <[email protected]>    Detected compiler: Visual C++ */ #include <windows.h> #include <defs.h> //------------------------------------------------------------------------- // Function declarations #define __thiscall __cdecl // Test compile in C mode #define __thiscall __cdecl // Test compile in C mode HGLOBAL __cdecl FreeGlobal(); LONG __thiscall SetPageSetupDefaults(void *this); int __stdcall NPSize(int nWidth, int); // idb int __stdcall NpSaveDialogHookProc(HWND hWndParent, int, HWND hWnd, int); // idb LRESULT __stdcall GotoAndScrollInView(int a1); LPWSTR __stdcall SkipProgramName(WCHAR *lpsz); LRESULT __stdcall UpdateStatusBar(int a1); LRESULT __stdcall WinEventFunc(int a1, int a2, int a3, int a4, int a5, int a6, int a7); const WCHAR *__stdcall PFileInPath(LPCWSTR lpsz); DWORD __stdcall NpResetMenu(HWND hWndNewOwner); signed int __stdcall MergeStrings(int a1, int a2, int a3); int __stdcall AlertBox(HWND hWnd, LPCWSTR lpCaption, LPCWSTR lpText, LPCWSTR lpString, UINT uType); // idb DWORD __cdecl SignalCommDlgError(); __int32 __stdcall ReplaceSel(int a1); signed int __stdcall GotoDlgProc(HWND hWnd, int a2, HWND a3, int a4); int __stdcall fDetermineFileType(int lpv, int iSize); HRESULT __stdcall StringCopyWorkerW(STRSAFE_LPWSTR pszDest, size_t cchDest, size_t *pcchNewDestLength, STRSAFE_PCNZWCH pszSrc, size_t cchToCopy); signed int __stdcall NpOpenDialogHookProc(DWORD hDlg, int a2, DWORD hWndMain, int a4); signed int __stdcall CheckSave(int a1); int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd); int __stdcall SetTitle(LPCWSTR pcchNewDestLength); // idb signed int __stdcall NPCommand(WPARAM hWnd, unsigned __int16 a2, int a3); signed int __cdecl FileDragOpen(); void __stdcall doDrop(HDROP hDrop, HWND hWnd); signed int __stdcall NPWndProc(HWND hWnd, UINT Msg, WPARAM hDrop, __int32 a4); LSTATUS __stdcall RegWriteInt(HKEY hKey, LPCWSTR lpValueName, BYTE Data); LSTATUS __stdcall RegWriteString(HKEY hKey, LPCWSTR lpValueName, LPCWSTR lpData); int __stdcall RegGetInt(HKEY hKey, LPCWSTR lpValueName, int); // idb LSTATUS __stdcall RegGetString(HKEY Type, LPCWSTR lpValueName, const void *a3, LPBYTE lpData, DWORD cbData); LSTATUS __cdecl SaveGlobals(); LSTATUS __cdecl GetGlobals(); // signed int __usercall sub_1003F4C(WCHAR **a1, unsigned __int16 *a2); LPCWSTR __stdcall GetFileName(LPWSTR lpFileName, LPCWSTR lpString2); HLOCAL __stdcall SizeStrings(HINSTANCE hInstance); HLOCAL __stdcall InitStrings(HINSTANCE hInstance); int __stdcall SkipBlanks(int a1); signed int __stdcall ProcessSetupOption(WCHAR **a1); signed int __stdcall ProcessShellOptions(WCHAR **a1, int nCmdShow); HFILTER __stdcall CreateFilter(); int __stdcall EnumProc(int a1, int a2, int a3, int a4); // BOOL __usercall sub_10044D7(HINSTANCE a1); signed int __stdcall NPInit(HINSTANCE hInstance, int a2, __int32 a3, int nCmdShow); void __stdcall ReverseEndian(int a1, int a2, int a3); int __stdcall AnsiWriteFile(HANDLE hFile, UINT CodePage, DWORD dwFlags, LPCWSTR lpWideCharStr, int cchWideChar); // idb LRESULT __cdecl ClearFmt(); LRESULT __cdecl RestoreFmt(); __int32 __stdcall New(int a1); WCHAR *__stdcall AddExt(LPCWSTR lpString1); int __stdcall AlertUser_FileFail(LPCWSTR lpString); // idb int __stdcall SaveFile(HWND hWnd, LPCWSTR lpString, LPCWSTR lpBuffer); // idb int __stdcall LoadFile(LPCWSTR lpString, int); // idb const wchar_t *__stdcall ReverseScan(const WCHAR *a1, const wchar_t *a2, LPCWSTR Str2, int a4); int __stdcall ForwardScan(wchar_t *lpString1, LPCWSTR Str2, int); // idb int __stdcall Search(LPCWSTR Str2); // idb int __stdcall NpReCreate(DWORD hWnd); // idb BOOL __stdcall AbortProc(int a1, int a2); int __stdcall GetResolutions(HDC hdc); // idb HDC __cdecl GetPrinterDCviaDialog(); BOOL __cdecl DestroyAbortWnd(); int __stdcall PageSetupHookProc(HWND hDlg, int, HWND hWndMain, int); // idb int *__stdcall TranslateString(int a1); signed int __cdecl GetPrinterDC(); signed int __cdecl GetNonDefPrinterDC(); signed int __stdcall AbortDlgProc(HWND hWnd, int a2, int a3, int a4); int __stdcall PrintHeaderFooter(HDC hdc, int y); // idb signed int __stdcall NpPrintGivenDC(HDC a1); signed int __stdcall NpPrint(int a1); int __stdcall PrintIt(int a1); LRESULT __stdcall InsertDateTime(int a1); signed int __stdcall IsTextUTF8(int a1, int a2); BOOL __stdcall IsInputTextUnicode(const void *lpv, int iSize); int __cdecl __security_init_cookie(); // BOOL __usercall __report_gsfailure(int a1, int a2, int a3, int a4, int a5, int a6); int __stdcall sub_100725F(LPBYTE lpData); // idb HWND __stdcall HtmlHelpA(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData); // BOOL __stdcall ClosePrinter(HANDLE hPrinter); // BOOL __stdcall GetPrinterDriverW(HANDLE hPrinter, LPWSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded); // BOOL __stdcall OpenPrinterW(LPWSTR pPrinterName, LPHANDLE phPrinter, LPPRINTER_DEFAULTSW pDefault); int __cdecl WinMainCRTStartup(); // int __cdecl _initterm(_DWORD, _DWORD); weak unsigned int __cdecl _setdefaultprecision(); int __cdecl _setargv(); // unsigned int __cdecl _controlfp(unsigned int NewValue, unsigned int Mask); //------------------------------------------------------------------------- // Data declarations // extern int __acmdln; weak // extern int __adjust_fdiv; weak int s_SaveAsHelpIDs[6] = { 257, 1002, 259, 1002, 0, 0 }; // weak int s_GotoHelpIDs[4] = { 258, 1003, 0, 0 }; // weak const WCHAR szOtherStuff = 0u; // idb int s_PageSetupHelpIDs[10] = { 32, 1001, 30, 1001, 33, 1000, 31, 1000, 0, 0 }; // weak const WCHAR word_1001840 = 8206u; // idb int dword_1001844 = 8207; // weak char ValueName[8] = { '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0' }; // idb _UNKNOWN __xc_a; // weak _UNKNOWN __xc_z; // weak _UNKNOWN __xi_a; // weak _UNKNOWN __xi_z; // weak BYTE iPointSize = 120u; // idb int fUntitled = 1; // weak int g_ftOpenedAs = 4294967295; // idb LPCWSTR szDiskError = (LPCWSTR)1; // idb LPCWSTR szFNF = (LPCWSTR)2; // idb LPCWSTR szSCBC = (LPCWSTR)3; // idb LPCWSTR szUntitled = (LPCWSTR)4; // idb LPCWSTR szNpTitle = (LPCWSTR)5; // idb LPCWSTR szCFS = (LPCWSTR)6; // idb LPCWSTR szErrSpace = (LPCWSTR)7; // idb LPCWSTR szFTL = (LPCWSTR)8; // idb LPCWSTR szNN = (LPCWSTR)9; // idb LPCWSTR szCP = (LPCWSTR)0xC; // idb int szNVF = 13; // weak LPCWSTR szCREATEERR = (LPCWSTR)0xE; // idb LPCWSTR szNoWW = (LPCWSTR)0xF; // idb int szMerge = 16; // weak LPCWSTR szHelpFile = (LPCWSTR)0x11; LPCWSTR szAnsiText = (LPCWSTR)0x14; // idb LPCWSTR szAllFiles = (LPCWSTR)0x15; // idb int szOpenCaption = 22; // weak int szSaveCaption = 23; // weak int szCannotQuit = 24; // weak LPCWSTR szLoadDrvFail = (LPCWSTR)0x19; // idb int szACCESSDENY = 26; // weak LPCWSTR szErrUnicode = (LPCWSTR)0x1B; // idb LPCWSTR szFontTooBig = (LPCWSTR)0x1C; // idb wchar_t *szCommDlgErr = (wchar_t *)0x1D; // idb LPCWSTR szLineError = (LPCWSTR)0x1E; // idb LPCWSTR szLineTooLarge = (LPCWSTR)0x1F; // idb LPARAM szFtAnsi = 32; // idb LPARAM szFtUnicode = 33; // idb LPARAM szFtUnicodeBe = 34; // idb LPARAM szFtUtf8 = 35; // idb wchar_t *szCurrentPage = (wchar_t *)0x24; // idb wchar_t *szLineCol = (wchar_t *)0x25; // idb int rgsz[9] = {   16814132,   16814136,   16814140,   16814144,   16814156,   16814152,   16814148,   16814160,   16814164 }; // weak __int16 *off_100919C = &szOtherStuff; // weak int maperror[] = { 65535 }; // weak int *off_10091A4 = &szErrSpace; // weak _UNKNOWN BOM_UTF8; // weak _UNKNOWN unk_10091E4; // weak _UNKNOWN unk_10091E8; // weak const WCHAR szFormattedDate = 89u; // idb const WCHAR szFormattedTime = 89u; // idb int __security_cookie_complement = 4294919359; // weak int __security_cookie = 47936; // weak int __defaultmatherr = 1; // weak int dword_1009620 = 0; // weak int dword_1009624 = 0; // weak const WCHAR FileName = 0u; // idb HWND hwndNP; // idb HWND hwndStatus; // idb HWND hwndEdit; // idb HWND hDlgFind; // idb BYTE fStatus; // idb int fLastStatus; // weak int dwEmSetHandle; // weak int fRunBySetup; // weak WPARAM fWrap; // idb int fInSaveAsDlg; // weak BYTE fMLE_is_broken; // idb WPARAM dwCurrentSelectionStart; // idb LPARAM dwCurrentSelectionEnd; // idb const WCHAR String2; // idb int nHeight; // idb int nWidth; // idb int X; // idb int Y; // idb int dword_1009A80; // idb BYTE Data; // idb LPARAM lParam; // idb WPARAM wParam; // idb int fCase; // idb int fReverse; // weak HMENU hMenu; // idb HWND (__stdcall *pHtmlHelpA)(HWND, const char *, unsigned int, unsigned __int32); // weak int dword_1009AA4; // weak HMODULE hModule; // idb int _dowildcard; // weak int _newmode; // weak int _commode; // weak int _fmode; int iPageNum; // weak int dxRight; // weak int dxLeft; // idb int dyBottom; // weak int dyTop; // weak int yPhysOff; // weak int xPhysOff; // weak int yPhysRes; // idb int xPhysRes; // idb int yPixInch; // weak int yPrintRes; // weak int xPrintRes; // weak struct _SYSTEMTIME PrintTime; // idb wchar_t chBuff; // idb const WCHAR word_1009D08; // idb const WCHAR word_1009F10; // idb struct tagPOINT rtMargin; // idb int dword_100A128; // weak int dword_100A12C; // weak int yPrintChar; // weak int fAbort; // weak HWND hAbortDlgWnd; // idb int tabSize; // weak WCHAR szPrinterName; // idb const WCHAR chPageTextTemp; // idb const WCHAR word_100A390; // idb WCHAR chPageText; // idb WCHAR String1; // idb HANDLE fp; // idb int wHlpMsg; // weak int wFRMsg; // weak struct tagPSDW g_PageSetupDlg; // idb struct tagFINDREPLACEW FR; // idb int g_ftSaveAs; // weak _UNKNOWN szSaveFilterSpec; // weak _UNKNOWN szOpenFilterSpec; // weak struct tagOFNW OFN; // idb HACCEL hAccel; // idb HMENU hSysMenuSetup; // idb int dyStatus; // weak _UNKNOWN szReplace; // weak const WCHAR szSearch; // idb const WCHAR szFileName; // idb LOGFONTW FontStruct; // idb HGDIOBJ hFont; // idb HINSTANCE hInstanceNP; // idb HCURSOR hWaitCursor; // idb HCURSOR hStdCursor; // idb HLOCAL hEdit; // idb __int16 chMerge; // weak int lGotoLine; // weak int __onexitend; // weak int __onexitbegin; // weak int _adjust_fdiv; // weak //----- (01001929) -------------------------------------------------------- HGLOBAL __cdecl FreeGlobal() {   HGLOBAL result; //
[email protected]
  if ( g_PageSetupDlg.hDevMode )     GlobalFree(g_PageSetupDlg.hDevMode);   result = g_PageSetupDlg.hDevNames;   if ( g_PageSetupDlg.hDevNames )     result = GlobalFree(g_PageSetupDlg.hDevNames);   g_PageSetupDlg.hDevMode = 0;   g_PageSetupDlg.hDevNames = 0;   return result; } //----- (0100195D) -------------------------------------------------------- LONG __thiscall SetPageSetupDefaults(void *this) {   LONG result; //
[email protected]
  void *LCData; // [sp+0h] [bp-4h]@1   LCData = this;   g_PageSetupDlg.lpfnPageSetupHook = (LPPAGESETUPHOOK)PageSetupHookProc;   g_PageSetupDlg.lpPageSetupTemplateName = (LPCWSTR)12;   GetLocaleInfoW(0x400u, 0xDu, (LPWSTR)&LCData, 2);   if ( (_WORD)LCData == 49 )   {     g_PageSetupDlg.rtMargin.top = 1000;     g_PageSetupDlg.rtMargin.bottom = 1000;     g_PageSetupDlg.Flags = 40966;     result = 750;   }   else   {     g_PageSetupDlg.rtMargin.top = 2500;     g_PageSetupDlg.rtMargin.bottom = 2500;     g_PageSetupDlg.Flags = 40970;     result = 2000;   }   g_PageSetupDlg.rtMargin.left = result;   g_PageSetupDlg.rtMargin.right = result;   return result; } //----- (010019E0) -------------------------------------------------------- BOOL __stdcall NPSize(int nWidth, int a2) {   InvalidateRect(hwndEdit, 0, 1);   return MoveWindow(hwndEdit, 0, 0, nWidth, a2 - (*(_DWORD *)&fStatus != 0 ? dyStatus : 0), 1); } // 100A6E0: using guessed type int dyStatus; //----- (01001A28) -------------------------------------------------------- signed int __stdcall NpSaveDialogHookProc(HWND hWndParent, int a2, HWND hWnd, int a4) {   LPARAM v4; //
[email protected]
  HWND v5; // [email protected]   int v6; // [email protected]   int v7; // [email protected]   struct tagPOINT Point; // [sp+4h] [bp-8h]@14   if ( a2 == 83 )   {     v7 = GetDlgCtrlID(*(HWND *)(a4 + 12));     if ( v7 != 257 && v7 != 259 )       return 0;     WinHelpW(*(HWND *)(a4 + 12), szHelpFile, 0xCu, (ULONG_PTR)s_SaveAsHelpIDs);   }   else   {     if ( a2 != 123 )     {       if ( a2 == 272 )       {         SendDlgItemMessageW(hWndParent, 257, 0x143u, 0, szFtAnsi);         SendDlgItemMessageW(hWndParent, 257, 0x143u, 0, szFtUnicode);         SendDlgItemMessageW(hWndParent, 257, 0x143u, 0, szFtUnicodeBe);         SendDlgItemMessageW(hWndParent, 257, 0x143u, 0, szFtUtf8);         v4 = szFtAnsi;         g_ftSaveAs = g_ftOpenedAs;         switch ( g_ftOpenedAs )         {           case 1:             v4 = szFtUnicode;             break;           case 2:             v4 = szFtUnicodeBe;             break;           case 3:             v4 = szFtUtf8;             break;         }         SendDlgItemMessageW(hWndParent, 257, 0x14Du, 0xFFFFFFFF, v4);       }       else if ( a2 == 273 )       {         g_ftSaveAs = SendDlgItemMessageW(hWndParent, 257, 0x147u, 0, 0);       }       return 0;     }     v5 = hWnd;     if ( hWndParent == hWnd )     {       GetCursorPos(&Point);       ScreenToClient(hWndParent, &Point);       v5 = ChildWindowFromPoint(hWndParent, Point);     }     v6 = GetDlgCtrlID(v5);     if ( v6 != 257 && v6 != 259 )       return 0;     WinHelpW(v5, szHelpFile, 0xAu, (ULONG_PTR)s_SaveAsHelpIDs);   }   return 1; } // 100136C: using guessed type int s_SaveAsHelpIDs[6]; // 100A528: using guessed type int g_ftSaveAs; //----- (01001B99) -------------------------------------------------------- LRESULT __stdcall GotoAndScrollInView(int a1) {   LRESULT result; // [email protected]   result = SendMessageW(hwndEdit, 0xBBu, a1 - 1, 0);   if ( result != -1 )   {     SendMessageW(hwndEdit, 0xB1u, result, result);     result = SendMessageW(hwndEdit, 0xB7u, 0, 0);   }   return result; } //----- (01001BE8) -------------------------------------------------------- LPWSTR __stdcall SkipProgramName(WCHAR *lpsz) {   LPWSTR result; // [email protected]   int v2; // [email protected]   const WCHAR v3; // [email protected]   result = lpsz;   v2 = 0;   while ( 1 )   {     v3 = *result;     if ( !*result || (v3 == 32 || v3 == 9) && !v2 )       break;     if ( v3 == 34 )       v2 = v2 == 0;     result = CharNextW(result);   }   while ( *result == 32 || *result == 9 )     ++result;   return result; } //----- (01001C42) -------------------------------------------------------- LRESULT __stdcall UpdateStatusBar(int a1) {   WPARAM v1; // [email protected]   int v2; // [email protected]   LRESULT result; // [email protected]   unsigned int v4; // [email protected]   LPARAM lParam; // [sp+Ch] [bp-10Ch]@1   WPARAM wParam; // [sp+10h] [bp-108h]@1   wchar_t Dest; // [sp+14h] [bp-104h]@4   __int16 v8; // [sp+112h] [bp-6h]@4   SendMessageW(hwndEdit, 0xB0u, (WPARAM)&wParam, (LPARAM)&lParam);   v1 = SendMessageW(hwndEdit, 0xC9u, wParam, 0);   v2 = v1 + 1;   result = SendMessageW(hwndEdit, 0xBBu, v1, 0);   v4 = wParam - result + 1;   if ( a1 || v4 != dword_1009624 || v2 != dword_1009620 )   {     __snwprintf(&Dest, 0x7Fu, szLineCol, v2, wParam - result + 1);     result = (LRESULT)hwndStatus;     v8 = 0;     if ( hwndStatus )       result = SendMessageW(hwndStatus, 0x40Bu, 1u, (LPARAM)&Dest);   }   dword_1009620 = v2;   dword_1009624 = v4;   return result; } // 1009620: using guessed type int dword_1009620; // 1009624: using guessed type int dword_1009624; //----- (01001D1C) -------