CINZY-LAB

分享免费、实用软件 | 分享编程经验、例程

的存档

04

精简的string类

一个string类的基类,相比stl里面的string和MFC的CString体积精简得多,但是功能较少,可完成基本的+ +=字符串连结操作,其他功能的在代码里发觉吧

文件名cy_basic_string.h;

可以使用typedef string cy_basic_string<char>;重定义

阅读全文>>

10

一道经典的C++题,关于分钱的问题,我的答案

看到http://blog.csdn.net/gisfarmer/archive/2009/02/08/3869236.aspx 有一个题目:

 

把一张面值为一元的纸币,换成一分,二分,五分的硬币,共有多少种换法?编程输出每一种不同的算法。

这道题很简单,是最简单的C++题,用C也可以做。

下面是我对这道题所做第一问共有多少种换法的答案,希望和路过的朋友分享一下。

 

 

int o=100;//要分的面值
o=(o%5*(o/5+1)+o/5*(o/5+1)/2*5-o/5/2)/2+o/5+1;编程输出每一种不同的算法我想除了用3个循环外还有其他办法,大家有好的办法要留下啊

16

源码发布:不用DLL文件的全局键盘消息钩子

一说到消息钩子大家就会想到dll文件,但这个程序不用DLL文件即可实现全局键盘消息钩子

可以去主页下载DEMO

一共发布3个文件,main.cpp ,main.h,main,rc没有发布的有favicon.ico,resource.h 前者图标自行替换,后者编译器自己构建


main.cpp

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
  101. 101
  102. 102
  103. 103
  104. 104
  105. 105
  106. 106
  107. 107
  108. 108
  109. 109
  110. 110
  111. 111
  112. 112
  113. 113
  1. #include "main.h"
  2. #include <windows.h>
  3.  
  4. //--------------------全局变量区---------------------------
  5. #define APPNAME "CINZY_HOOK"
  6. LPCTSTR lpszAppName = APPNAME ;
  7. HINSTANCE ghInstance ;
  8. HWND ghDlg;
  9.  
  10. //--------------------WndProc函数---------------------------
  11. LRESULT __stdcall WndProc (HWND hDlg,UINT iMsg,WPARAM wParam,LPARAM lParam)
  12. {
  13. LRESULT lResult;
  14. BOOL fCallDefProc = FALSE ;
  15. switch ( iMsg )
  16. {
  17. case WM_INITDIALOG:
  18. EnableWindow(GetDlgItem(hDlg,IDC_EDIT1),false);
  19. break;
  20. case WM_COMMAND:
  21. switch ( LOWORD(wParam) )
  22. {
  23. case IDC_BUTTON1:
  24. ShellExecute(NULL, "open", "http://cinzy.com/#DemoKbdHook", NULL, NULL, SW_SHOWNORMAL);
  25. break;
  26. }
  27. break;
  28. case WM_CLOSE:
  29. PostMessage ( hDlg, WM_DESTROY, 0, 0 ) ;
  30. break;
  31. case WM_DESTROY:
  32. PostQuitMessage( 0 ) ;
  33. break ;
  34.  
  35. default:
  36. fCallDefProc = TRUE ;
  37. break ;
  38. }
  39.  
  40. if ( fCallDefProc )
  41. {
  42. lResult = DefWindowProc ( hDlg, iMsg, wParam, lParam ) ;
  43. }
  44. return lResult ;
  45. }
  46.  
  47. DWORD g_main_tid = 0;
  48. HHOOK g_kb_hook = 0;
  49.  
  50. bool CALLBACK con_handler (DWORD)
  51. {
  52. PostThreadMessage (g_main_tid, WM_QUIT, 0, 0);
  53. return TRUE;
  54. };
  55.  
  56. LRESULT CALLBACK kb_proc (int code, WPARAM w, LPARAM l)
  57. {
  58. char buf[256];
  59. static char buff[65535]="";
  60. PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT)l;
  61. const char *info = NULL;
  62. if (w == WM_KEYDOWN||w == WM_SYSKEYDOWN)
  63. {
  64. sprintf (buf,"%C",p->vkCode);
  65. if(strlen(buff)<65533)
  66. strcat(buff,buf);
  67. SendDlgItemMessage(ghDlg,IDC_EDIT1,WM_SETTEXT,0,(LPARAM)buff);
  68. }
  69.  
  70. return CallNextHookEx (g_kb_hook, code, w, l);
  71. };
  72.  
  73. int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow)
  74. {
  75. WNDCLASS wc ;
  76. ghInstance=hInstance;
  77. wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
  78. wc.lpfnWndProc = (WNDPROC)WndProc ;
  79. wc.cbClsExtra = 0 ;
  80. wc.cbWndExtra = DLGWINDOWEXTRA ;
  81. wc.hInstance = hInstance ;
  82. wc.hIcon = LoadIcon(ghInstance,MAKEINTRESOURCE(IDI_ICON2));
  83. wc.hCursor = LoadCursor(NULL, IDC_ARROW) ;
  84. wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1) ;
  85. wc.lpszMenuName = NULL ;
  86. wc.lpszClassName = lpszAppName ;
  87. if ( IS_WIN95 ){}else if ( !RegisterClass(&wc)){return FALSE;}
  88.  
  89. ghDlg = CreateDialog(hInstance, (LPCTSTR)MAIN_FRAME, 0, (DLGPROC)WndProc);
  90.  
  91. g_main_tid = GetCurrentThreadId ();
  92. SetConsoleCtrlHandler ((PHANDLER_ROUTINE)&con_handler, TRUE);
  93. g_kb_hook = SetWindowsHookEx (
  94. WH_KEYBOARD_LL,
  95. (HOOKPROC)&kb_proc,
  96. GetModuleHandle (NULL),
  97. 0);
  98. if (g_kb_hook == NULL)
  99. {
  100. fprintf (stderr,
  101. "SetWindowsHookEx failed with error %d\n",
  102. ::GetLastError ());
  103. return 0;
  104. };
  105. MSG msg;
  106. while (GetMessage (&msg, NULL, 0, 0))
  107. {
  108. TranslateMessage (&msg);
  109. DispatchMessage (&msg);
  110. };
  111. UnhookWindowsHookEx (g_kb_hook);
  112. return 0;
  113. }

main.h

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  1. #define _WIN32_WINNT 0x400
  2. #ifndef _WINDOWS_
  3. #include
  4. #endif
  5. #include "resource.h"
  6. #if defined (WIN32)
  7. #define IS_WIN32 TRUE
  8. #else
  9. #define IS_WIN32 FALSE
  10. #endif
  11. #define IS_NT IS_WIN32 && (BOOL)(GetVersion() < 0x80000000)
  12. #define IS_WIN32S IS_WIN32 && (BOOL)(!(IS_NT) && (LOBYTE(LOWORD(GetVersion()))<4))
  13. #define IS_WIN95 (BOOL)(!(IS_NT) && !(IS_WIN32S)) && IS_WIN32

main.rc

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
  101. 101
  102. 102
  103. 103
  104. 104
  105. 105
  106. 106
  107. 107
  108. 108
  109. 109
  110. 110
  111. 111
  112. 112
  113. 113
  114. 114
  115. 115
  116. 116
  117. 117
  118. 118
  119. 119
  1. //Microsoft Developer Studio generated resource script.
  2. //
  3. #include "resource.h"
  4.  
  5. #define APSTUDIO_READONLY_SYMBOLS
  6. /////////////////////////////////////////////////////////////////////////////
  7. //
  8. // Generated from the TEXTINCLUDE 2 resource.
  9. //
  10. #include "afxres.h"
  11.  
  12. /////////////////////////////////////////////////////////////////////////////
  13. #undef APSTUDIO_READONLY_SYMBOLS
  14.  
  15. /////////////////////////////////////////////////////////////////////////////
  16. // Japanese resources
  17.  
  18. #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
  19. #ifdef _WIN32
  20. LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
  21. #pragma code_page(932)
  22. #endif //_WIN32
  23.  
  24. #ifdef APSTUDIO_INVOKED
  25. /////////////////////////////////////////////////////////////////////////////
  26. //
  27. // TEXTINCLUDE
  28. //
  29.  
  30. 1 TEXTINCLUDE DISCARDABLE
  31. BEGIN
  32. "resource.h"
  33. END
  34.  
  35. 2 TEXTINCLUDE DISCARDABLE
  36. BEGIN
  37. "#include ""afxres.h""\r\n"
  38. ""
  39. END
  40.  
  41. 3 TEXTINCLUDE DISCARDABLE
  42. BEGIN
  43. "\r\n"
  44. ""
  45. END
  46.  
  47. #endif // APSTUDIO_INVOKED
  48.  
  49. #endif // Japanese resources
  50. /////////////////////////////////////////////////////////////////////////////
  51.  
  52. /////////////////////////////////////////////////////////////////////////////
  53. // Chinese (中国) resources
  54.  
  55. #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
  56. #ifdef _WIN32
  57. LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
  58. #pragma code_page(936)
  59. #endif //_WIN32
  60.  
  61. /////////////////////////////////////////////////////////////////////////////
  62. //
  63. // Dialog
  64. //
  65.  
  66. MAIN_FRAME DIALOGEX 0, 0, 219, 110
  67. STYLE DS_SYSMODAL | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE |
  68. WS_CAPTION | WS_SYSMENU
  69. EXSTYLE WS_EX_ACCEPTFILES
  70. CAPTION "低级键盘钩子演示(DEMO)CINZY-LAB"
  71. CLASS "CINZY_HOOK"
  72. FONT 9, "宋体"
  73. BEGIN
  74. EDITTEXT IDC_EDIT1,0,0,219,86,ES_MULTILINE | ES_READONLY
  75. PUSHBUTTON "主页",IDC_BUTTON1,5,91,50,14
  76. END
  77.  
  78. /////////////////////////////////////////////////////////////////////////////
  79. //
  80. // 24
  81. //
  82.  
  83. 1 24 MOVEABLE PURE "XPStyle.manifest"
  84.  
  85. /////////////////////////////////////////////////////////////////////////////
  86. //
  87. // Icon
  88. //
  89.  
  90. // Icon with lowest ID value placed first to ensure application icon
  91. // remains consistent on all systems.
  92. IDI_ICON2 ICON DISCARDABLE "favicon.ico"
  93.  
  94. /////////////////////////////////////////////////////////////////////////////
  95. //
  96. // DESIGNINFO
  97. //
  98.  
  99. #ifdef APSTUDIO_INVOKED
  100. GUIDELINES DESIGNINFO DISCARDABLE
  101. BEGIN
  102. MAIN_FRAME, DIALOG
  103. BEGIN
  104. BOTTOMMARGIN, 109
  105. END
  106. END
  107. #endif // APSTUDIO_INVOKED
  108.  
  109. #endif // Chinese (中国) resources
  110. /////////////////////////////////////////////////////////////////////////////
  111.  
  112. #ifndef APSTUDIO_INVOKED
  113. /////////////////////////////////////////////////////////////////////////////
  114. //
  115. // Generated from the TEXTINCLUDE 3 resource.
  116. //
  117.  
  118. /////////////////////////////////////////////////////////////////////////////
  119. #endif // not APSTUDIO_INVOKED
15

CyBoost 核心源码

CyBoost 是一个调度系统优先级提高系统运行效率的软件,下面为核心控制参数代码,控制好周期调用函数即可
[CODE=cplusplus]
void CyBoost(void)
{
static DWORD PID = 0, PID2 = 0, Proess1_PRIORITY = 0, Proess2_PRIORITY = 0;
static HANDLE hPro;
SetCursor(LoadCursor(NULL, IDC_ARROW));
GetWindowThreadProcessId(GetForegroundWindow(), &PID);
if (PID2 != PID)
{
hPro = OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);
Proess1_PRIORITY = GetPriorityClass(hPro);
if (HIGH_PRIORITY_CLASS != Proess1_PRIORITY)
{
SetPriorityClass(hPro, HIGH_PRIORITY_CLASS);
}
hPro = OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID2);
SetPriorityClass(hPro, Proess2_PRIORITY);
PID2 = PID;
Proess2_PRIORITY = Proess1_PRIORITY;
}
}
[/CODE]

12

为什么CINZY-LAB的软件这么小

 最近不少网友问我为什么我的软件这么小,为了避免重复回答写了此篇文章

1.我的很多软件是用VC++6.0编译 win32 api编写的,主要原因是没有使用任何第三方类库,这样1000行的代码生成的程序也只有几KB

2.很少采用真彩色图标(AUTOALL除外) exe主程序图标(favicon.ico)的颜色只有16色,大小才318B

3.采样压缩软件压缩程序

        QQ登陆快捷方式创建器0.2     版本未加壳时大小为  11K  压缩后为6.41K
        鼠标键盘动作脚本执行器0.242版本未加壳时大小为  52K 压缩后为16K

        压缩工具选用Upack(dwing) 只有这个软件才能达到这么高的压缩水准,下面为此软件的截图

cinzy曾挑战过各种压缩壳的压缩比,Upack 在压缩小软件中压缩比最高

当然使用upack会有负面影响,McAfee会通杀掉所有使用upack加壳的程序还有一些杀毒软件报出病毒但
当前使用较多的卡巴,NOD,瑞星等等杀毒软件不会报病毒

下面为upack杀毒软件扫面 鼠标键盘动作脚本执行器 0.251 文件的结果

 

反病毒引擎 版本 最后更新 扫描结果
AhnLab-V3 - - -
AntiVir - - -
Authentium - - W32/Heuristic-210!Eldorado
Avast - - -
AVG - - -
BitDefender - - -
CAT-QuickHeal - - TrojanPSW.OnLineGames.iic
ClamAV - - -
DrWeb - - -
eSafe - - Suspicious File
eTrust-Vet - - -
Ewido - - -
F-Prot - - W32/Heuristic-210!Eldorado
F-Secure - - W32/Packed_Upack.A
Fortinet - - -
GData - - -
Ikarus - - Backdoor.Rbot
K7AntiVirus - - -
Kaspersky - - -
McAfee - - New Malware.aj
Microsoft - - -
NOD32 - - -
Norman - - W32/Packed_Upack.A
Panda - - -
PCToo
ls
- - Trojan-PWS.OnlineGames.ES
Prevx1 - - -
Rising - - -
SecureWeb-Gateway - - Win32.Malware.gen!90 (suspicious)
Sophos - - Sus/ComPack-K
Sunbelt - - Trojan.Win32.Packed.gen (v)
Symantec - - -
TheHacker - - W32/Behav-Heuristic-060
TrendMicro - - PAK_Generic.006
VBA32 - - -
ViRobot - - -
VirusBuster - - Packed/Upack

 

通过网友的反应绝大用户没有被查杀,就算有也会加入白名单,但cinzy还是会照顾个别网友,如果杀毒软件在上述列表请来信联系,我会发给软件的无壳版给大家