|
[求助]VB4.0的程序是否可以反编译?求大神们回复
直接发出来估计连源代码都有了 |
|
[求助]不在cmd下如何执行msg命令?
ffashi 搞不定了, msg %username% /time:5 这是一个提示框具体 cmd.exe ---> msg ---> csrss 弹出信息框 怎么才能不结果 cmd 和 ... /***************************************************************************** * * MAIN * * ENTRY: * argc - count of the command line arguments. * argv - vector of strings containing the command line arguments. * ****************************************************************************/ int __cdecl main(INT argc, CHAR **argv) { // struct tm * pTimeDate; // time_t curtime; SYSTEMTIME st; WCHAR TimeStamp[ MAX_TIME_DATE_LEN ]; WCHAR *CmdLine; WCHAR **argvW; WCHAR szTitleFormat[50]; DWORD dwSize; PLOGONID pTerm; UINT TermCount; ULONG Status; int i, rc, TitleLen; BOOLEAN MatchedOne = FALSE; setlocale(LC_ALL, ".OCP"); /* * Massage the command line. */ argvW = MassageCommandLine((DWORD)argc); if (argvW == NULL) { ErrorPrintf(IDS_ERROR_MALLOC); return(FAILURE); } /* * parse the cmd line without parsing the program name (argc-1, argv+1) */ rc = ParseCommandLine(argc-1, argvW+1, ptm, 0); /* * Check for error from ParseCommandLine */ if (rc && (rc & PARSE_FLAG_NO_PARMS) ) help_flag = TRUE; if ( help_flag || rc ) { if (!help_flag) { Usage(TRUE); return(FAILURE); } else { Usage(FALSE); return(SUCCESS); } } // If no remote server was specified, then check if we are running under Terminal Server if ((!IsTokenPresent(ptm, TOKEN_SERVER) ) && (!AreWeRunningTerminalServices())) { ErrorPrintf(IDS_ERROR_NOT_TS); return(FAILURE); } /* * Open the specified server */ if( ServerName[0] ) { hServerName = WinStationOpenServer( ServerName ); if( hServerName == NULL ) { StringErrorPrintf(IDS_ERROR_SERVER,ServerName); PutStdErr( GetLastError(), 0 ); return(FAILURE); } } /* * if no timeout was specified, use default */ if ( !IsTokenPresent(ptm, TOKEN_TIME) ) Seconds = RESPONSE_TIMEOUT; /* * allocate a buffer for the message header */ if ( (MsgText = (PWCHAR)malloc(MAX_IDS_LEN * sizeof(WCHAR))) == NULL ) { ErrorPrintf(IDS_ERROR_MALLOC); return(FAILURE); } MsgText[0] = 0; /* * set up message header text: sender and timestamp */ GetCurrentUserName(CurrUserName, USERNAME_LENGTH); /* * Get the current Winstation Id for this process */ gCurrentLogonId = GetCurrentLogonId(); /* * Form message title string. */ dwSize = sizeof(szTitleFormat) / sizeof(WCHAR); LoadString(NULL,IDS_TITLE_FORMAT,szTitleFormat,dwSize); TitleLen = (wcslen(szTitleFormat) + wcslen(CurrUserName) + 1) * sizeof(WCHAR) + ( 2 * sizeof( TimeStamp ) ); MsgTitle = (PWCHAR)malloc(TitleLen); if( MsgTitle == NULL ) { ErrorPrintf(IDS_ERROR_MALLOC); return(FAILURE); } _snwprintf(MsgTitle, TitleLen, szTitleFormat, CurrUserName); TimeStamp[0] = 0; GetLocalTime( &st ); GetDateFormat( LOCALE_USER_DEFAULT , DATE_SHORTDATE , &st , NULL , TimeStamp, MAX_TIME_DATE_LEN ); wcscat(MsgTitle , TimeStamp); TimeStamp[0] = 0; GetTimeFormat( LOCALE_USER_DEFAULT , TIME_NOSECONDS , &st , NULL , TimeStamp, MAX_TIME_DATE_LEN ); wcscat(MsgTitle , L" " ); wcscat(MsgTitle , TimeStamp); /* * if message was specified on the command line, add it to MsgText string */ if ( IsTokenPresent(ptm, TOKEN_MESSAGE) ) { MsgText = realloc(MsgText, (wcslen(MsgText) + wcslen(MsgLine) + 1) * sizeof(WCHAR)); if ( MsgText == NULL ) { ErrorPrintf(IDS_ERROR_MALLOC); return(FAILURE); } wcscat(MsgText, MsgLine); } else { /* * Message was not on the command line. If STDIN is connected to * the keyboard, then prompt the user for the message to send, * otherwise just read STDIN. */ if ( _isatty( _fileno(stdin) ) ) Message(IDS_MESSAGE_PROMPT); while ( wfgets(MsgLine, MAX_IDS_LEN, stdin) != NULL ) { MsgText = (PWCHAR)realloc( MsgText, (wcslen(MsgText) + wcslen(MsgLine) + 1) * sizeof(WCHAR) ); if ( MsgText == NULL ) { ErrorPrintf(IDS_ERROR_MALLOC); return(FAILURE); } wcscat(MsgText, MsgLine); } /* * When we fall through, we either have an eof or a problem with * STDIN */ if ( feof(stdin) ) { /* * If we get here then we hit eof on STDIN. First check to make * sure that we did not get an eof on first wfgets */ if ( !wcslen(MsgText) ) { ErrorPrintf(IDS_ERROR_EMPTY_MESSAGE); return(FAILURE); } } else { /* * The return from wfgets was not eof so we have an STDIN * problem */ ErrorPrintf(IDS_ERROR_STDIN_PROCESSING); return(FAILURE); } } /* * Is the ids_input really a file indirection? */ if ( ids_input[0] == L'@' ) { /* * Open the input file and read the names into the NameList */ if ( !LoadFileToNameList(&ids_input[1]) ) return(FAILURE); /* * Ok, let's get in touch */ file_flag = TRUE; } else { _wcslwr( ids_input ); NameList = (WCHAR **)malloc( 2 * sizeof( WCHAR * ) ); if ( NameList == NULL ) { ErrorPrintf(IDS_ERROR_MALLOC); return(FAILURE); } NameList[0] = ids_input; NameList[1] = NULL; NameListCount = 1; } /* * Enumerate across all the WinStations and send the message * to them if there are any matches in the NameList */ if ( WinStationEnumerate(hServerName, &pTerm, &TermCount) ) { if ( SendMessageIfTarget(pTerm, TermCount, MsgTitle, MsgText) ) MatchedOne = TRUE; WinStationFreeMemory(pTerm); } else{ Status = GetLastError(); ErrorPrintf(IDS_ERROR_WINSTATION_ENUMERATE, Status); return(FAILURE); } /* * Check for at least one match */ if ( !MatchedOne ) { if( file_flag ) StringErrorPrintf(IDS_ERROR_NO_FILE_MATCHING, &ids_input[1]); else StringErrorPrintf(IDS_ERROR_NO_MATCHING, ids_input); return(FAILURE); } return(SUCCESS); } /* main() */ 代码在xp sp1泄露的源代码里面可以看到 最终调用的是 WinStationSendMessageW
最后于 2021-1-15 10:00
被Mxixihaha编辑
,原因:
|
|
[求助]MSVC编译链接找不到符号
vblank 指定了入口之后就不会链接默认的那些库了,找不到符号是肯定的。如果是非MFC,可以把缺少的函数手动加上。MFC的话就难搞了哦,一大堆符号。结论是你这个操作行不通麻烦不要把答案覆盖. 谁说MFC不可以指定入口? 不仅可以指定入口,还可以正常的像标准DLL一样初始化. 上面已经给出方法了. 不要误导. 搜索不到的,不代表就没有. 主要在于你有没有研究方法. |
|
[求助]MSVC编译链接找不到符号
我都说过了 标准的接口也可以加入MFC的使用. Win32 DLL 的入口就很简单的使用各种,包括MFC的类,你只要在IDE里面设置有MFC的支持就行了 有时候吧,都告诉你了还不动脑筋实践. 现在我给你直接MFC DLL的处理方法. 在CPP中加入 #pragma comment(linker,"/ENTRY:MyDllMain") 在 theApp 下一行加入 extern "C"{ BOOL WINAPI _DllMainCRTStartup( HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved ); } BOOL WINAPI MyDllMain( HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved ) { MessageBox(0,L"MFC DLL INIT!",NULL,0x40); BOOL Ret = _DllMainCRTStartup( hDllHandle , dwReason , lpreserved); AfxMessageBox(L"MFC DLL INIT OK!"); return Ret; } 同样InitInstance() 也是正常可以调用的.可以在 InitInstance 代码中加入提示看到 BOOL CTestMFCDllApp::InitInstance() { AfxMessageBox(L"MFC InitInstance()"); CWinApp::InitInstance(); return TRUE; } 方法都是人想出来的.
最后于 2021-1-14 08:25
被Mxixihaha编辑
,原因:
|
|
[求助]MSVC编译链接找不到符号
你直接用标准的DLL 加上MFC的支持 静态编译不就是你要的了? InitInstance 里面本来就有DllMain 肯定编译不过去的. |
|
[求助] 逆向一个算法
sungy 高手就是高手,出个价吧,你们那么多看雪币是准备升值吗?[em_12],V1g6MTMxMjg5MjMxMDM 一个base64可以吗 解密可以秒解, 加密上要小跑一下(不跑也可以,通过跑一次做表保存 弄成回逆的box). 分享一下过程吧.. 玩了这么久, 算法的难点是太太太太太太长长长长长长长了. 开始第一天拿到手以为是每个字节异或. 后来发现那是两张拆掉的表. 对应两个 加解密的box. 不同的字节对应不同的算法(实际上就是个box) decodeKey/encodeKey 是同一个,但也是很长很长的算法,但是呢,有一个变通的方法就变得简单了. 包括前后的字节转换处理.不然的话,你会直接放弃掉算法的念头! 代码逆向出来都是一行一行的 ,痛苦并快乐,搞定他的爽快! box太多太多. 源代码光box.h 有 2.15MB 开始一个一个手工提取. 后面才写工具提取. 着实没想到拆得这么狠,都是以为半天的功夫搞完的. 一搞就这么多天. 不含 box.h 按汇编直观的解读搞完 接近 7000行代码. 几乎整个程序就是在读被拆的表. 不然真的循环很快了事.
最后于 2021-1-4 09:20
被Mxixihaha编辑
,原因:
|
|
[求助] 逆向一个算法
sungy 直接反汇编转成C的算法对我没有多大意义,希望你能完成我说的反向算法,钱先结了,目标还没未成, 所有算法已经分析完成. 如何联系? 是先把你上面发的那个信息的结果发到这里确定转换正确吗?
最后于 2020-12-31 17:10
被Mxixihaha编辑
,原因:
|
|
[求助] 逆向一个算法
sungy 肯定要的,只要能搞定,可加钱 加解密算法全部写完了. 解密秒解. 加密要跑 hk0 =GetKey(c10,c0); 457C67CC = GetKey(E49CF0D8 , C5C809F6) hk1 =GetKey(hk0,c1); 0BF7EE15 = GetKey(457C67CC , 02F64054) v =GetKey(hk1,c2); 47D43C8C = GetKey(0BF7EE15 , 2074D24E) nmax 124/155 Thread end! nmax 31/62 Thread end! nmax 155/186 Thread end! nmax 186/217 Thread end! RunKey Success! RunKey hvk2...... Thread nmax 0/31 start! Thread nmax 31/62 start! Thread nmax 62/93 start! Thread nmax 93/124 start! Thread nmax 124/155 start! Thread nmax 155/186 start! Thread nmax 186/217 start! Thread nmax 217/255 start! hk0 =GetKey(c10,c0); BBA5F72B = GetKey(A36B2052 , 1A591BCD) hk1 =GetKey(hk0,c1); 365347B0 = GetKey(BBA5F72B , A4565749) v =GetKey(hk1,c2); F7D07AF1 = GetKey(365347B0 , 43CF0DDD) nmax 124/155 Thread end! nmax 62/93 Thread end! nmax 155/186 Thread end! nmax 31/62 Thread end! nmax 217/255 Thread end! nmax 0/31 Thread end! nmax 186/217 Thread end! nmax 93/124 Thread end! RunKey Success! RunKey hvk5...... Thread nmax 0/31 start! Thread nmax 31/62 start! Thread nmax 62/93 start! Thread nmax 93/124 start! Thread nmax 124/155 start! Thread nmax 155/186 start! Thread nmax 186/217 start! Thread nmax 217/255 start! nmax 0/31 Thread end! nmax 186/217 Thread end! nmax 124/155 Thread end! hk0 =GetKey(c10,c0); E2F1AF5F = GetKey(C1CAB6B3 , EF580A7A) hk1 =GetKey(hk0,c1); C5E8FC16 = GetKey(E2F1AF5F , 7F8103FE) v =GetKey(hk1,c2); 3988BC15 = GetKey(C5E8FC16 , B6462CBF) nmax 155/186 Thread end! nmax 62/93 Thread end! nmax 217/255 Thread end! nmax 31/62 Thread end! nmax 93/124 Thread end! RunKey Success! RunKey hvk8...... Thread nmax 0/31 start! Thread nmax 31/62 start! Thread nmax 62/93 start! Thread nmax 93/124 start! Thread nmax 124/155 start! Thread nmax 155/186 start! Thread nmax 186/217 start! Thread nmax 217/255 start! nmax 124/155 Thread end! nmax 0/31 Thread end! nmax 93/124 Thread end! nmax 155/186 Thread end! nmax 31/62 Thread end! nmax 62/93 Thread end! nmax 186/217 Thread end! hk0 =GetKey(c10,c0); 02A37C72 = GetKey(DA9AD9D1 , B042D759) hk1 =GetKey(hk0,c1); A61B2006 = GetKey(02A37C72 , B69468A3) v =GetKey(hk1,c2); 301A708A = GetKey(A61B2006 , FB4DF54E) nmax 217/255 Thread end! RunKey Success! RunKey hvk11...... Thread nmax 0/31 start! Thread nmax 31/62 start! Thread nmax 62/93 start! Thread nmax 93/124 start! Thread nmax 124/155 start! Thread nmax 155/186 start! Thread nmax 186/217 start! Thread nmax 217/255 start! nmax 93/124 Thread end! nmax 0/31 Thread end! nmax 186/217 Thread end! nmax 124/155 Thread end! nmax 31/62 Thread end! hk0 =GetKey(c10,c0); 686213A8 = GetKey(6F70699C , D04E45E1) hk1 =GetKey(hk0,c1); 2E7E7271 = GetKey(686213A8 , D7ACF40D) v =GetKey(hk1,c2); 779283ED = GetKey(2E7E7271 , 08E4D2F0) nmax 217/255 Thread end! nmax 155/186 Thread end! nmax 62/93 Thread end! RunKey Success! RunKey hkey2...... Thread nmax 0/31 start! Thread nmax 31/62 start! Thread nmax 62/93 start! Thread nmax 93/124 start! Thread nmax 124/155 start! Thread nmax 155/186 start! Thread nmax 186/217 start! Thread nmax 217/255 start! nmax 186/217 Thread end! nmax 217/255 Thread end! hk0 =GetKey(c10,c0); F6245DA1 = GetKey(C0CE6E58 , 3B8A49B4) hk1 =GetKey(hk0,c1); E1909845 = GetKey(F6245DA1 , 0ED1C3E7) v =GetKey(hk1,c2); FC894F95 = GetKey(E1909845 , 39682406) nmax 62/93 Thread end! nmax 0/31 Thread end! nmax 31/62 Thread end! nmax 124/155 Thread end! nmax 93/124 Thread end! nmax 155/186 Thread end! RunKey Success! RunKey hkey5...... Thread nmax 0/31 start! Thread nmax 31/62 start! Thread nmax 62/93 start! Thread nmax 93/124 start! Thread nmax 124/155 start! Thread nmax 155/186 start! Thread nmax 186/217 start! Thread nmax 217/255 start! nmax 0/31 Thread end! nmax 124/155 Thread end! nmax 62/93 Thread end! nmax 31/62 Thread end! hk0 =GetKey(c10,c0); 81934A35 = GetKey(62DCC5B4 , 7D444ECB) hk1 =GetKey(hk0,c1); 4E6C04F1 = GetKey(81934A35 , 228C7B87) v =GetKey(hk1,c2); 15112D8B = GetKey(4E6C04F1 , FC3C364E) nmax 93/124 Thread end! nmax 186/217 Thread end! nmax 155/186 Thread end! nmax 217/255 Thread end! RunKey Success! RunKey hkey8...... Thread nmax 0/31 start! Thread nmax 31/62 start! Thread nmax 62/93 start! Thread nmax 93/124 start! Thread nmax 124/155 start! Thread nmax 155/186 start! Thread nmax 186/217 start! Thread nmax 217/255 start! nmax 62/93 Thread end! nmax 93/124 Thread end! nmax 124/155 Thread end! nmax 217/255 Thread end! nmax 0/31 Thread end! hk0 =GetKey(c10,c0); 98465D69 = GetKey(C5048A88 , 472FECE1) hk1 =GetKey(hk0,c1); 0DD33789 = GetKey(98465D69 , FC551F87) v =GetKey(hk1,c2); 284BCC58 = GetKey(0DD33789 , B4879BC7) nmax 186/217 Thread end! nmax 31/62 Thread end! nmax 155/186 Thread end! RunKey Success! RunKey hkey11......Ha ha ha~~! Thread nmax 0/31 start! Thread nmax 31/62 start! Thread nmax 62/93 start! Thread nmax 93/124 start! Thread nmax 124/155 start! Thread nmax 155/186 start! Thread nmax 186/217 start! Thread nmax 217/255 start! nmax 155/186 Thread end! nmax 31/62 Thread end! nmax 217/255 Thread end! hk0 =GetKey(c10,c0); AD49C487 = GetKey(7FD7B5BB , EF40AA0A) hk1 =GetKey(hk0,c1); C81CF505 = GetKey(AD49C487 , 7DBC4D32) v =GetKey(hk1,c2); 048AC610 = GetKey(C81CF505 , 680AEF98) nmax 62/93 Thread end! nmax 186/217 Thread end! nmax 93/124 Thread end! nmax 0/31 Thread end! nmax 124/155 Thread end! RunKey Success! [加密(0xF7B24B09)] -----------------这个信息打印错了,KEY其实是 0xFF86BD01(见代码截图) 6C 0B 0A F8 41 94 4C B4 AB B1 A1 EB 74 D0 68 6E
最后于 2021-1-3 22:59
被Mxixihaha编辑
,原因:
|
|
[求助] 逆向一个算法
sungy 高手能继续研究吗,那个表我已经提取出来了,能搞定的话,费用可再商量看你那么久没回复我以为你不需要了. 这个肯定可以搞定啊 就是个重体力活, 里面的box百多个不重复呢. |
|
[求助] 逆向一个算法
密匙不变的情况下相对简单点, 密匙转换的过程是知名算法 只是sbox换掉了 转换密匙的过程box全程抽取,所以只能一个个的提取. 非常的繁锁. 如果一个人不停的搞这些 估计也要一两天的时间. 发一半密匙转换过程. 另外一半算法也一样, 都很简单. 但是这个东西算法的体力活不是一般人可以承受得了的.每一个查表的box都是分散的,全部分析完大约 上几百的分散的静态 box. 当我分析到密匙转换完成之后,后面还有这近两倍的工作量. 都是同一算法,然后最终完成xor解密明文的那 16字节! 但由于一看体力活工作量实在太大(其实整个过程就两个循环和最终的xor,但拆得太狠),就不再往下了... ... 有兴趣的可以继续! 详见下方代码 重点: 这个东西算法真的简单. 但是体力活真的很大!
最后于 2020-12-26 21:46
被Mxixihaha编辑
,原因:
|
|
[求助]一个无花无壳无加密易语言程序,OD调试就崩溃,咋回事?
直接用工具(xuetr之类)删除SSDT的HOOK即可 或者 直接在 64位系统上调试 |
|
[转帖]Borland Delphi 7 Science Edition 2020 (x86) (12.2020)
全部都是俄文 看不懂. 先收藏一份绝版的东西. 好像也不用delphi 林版辛苦了
最后于 2020-12-11 20:57
被Mxixihaha编辑
,原因:
|
|
[转帖]VisualAssist_v10.9.2393.0 Incl Crack and Serial By DFoX
sonyps 这个破解有BUG,用过几十分钟VAX就会自动变灰而被禁用,大家还是还原成试用模式先用着吧。你是不是生成有效期的年份超过20年了啊??? 官方验证如果授权期限超出了 20年就会就灰的 |
|
[求助]求助C++用指针游戏内NPC名称
最后于 2020-11-27 08:45
被Mxixihaha编辑
,原因:
|
|
[转帖]WinAPIOverride 6.5.4
是个很方便的工具,需要的时候才能用得到. 谢谢林版 先标记一下 WinAPIOverride API Monitor |
|
有没有人封装过C++最全的PE操作类? 比如有 80% 的 CFF Explorer 的PE文件操作功能.
ProgmBoy https://github.com/lief-project/LIEF谢谢,这个看上去很强大,支持格式也很多. |
|
有没有人封装过C++最全的PE操作类? 比如有 80% 的 CFF Explorer 的PE文件操作功能.
Cr2zy https://github.com/sporst/PeLib谢谢,不过这个不太理想. 正在偿试自己写一个 如果有现成的就收集一下吧 |