|
[求助]求 USBoot.exe加的是什么壳
没加壳啊~~~ |
|
R3下如何遍历当前进程所有线程TEB
这个网上好多现成的代码啊 我所我工程里的复制下给你吧 DWORD Process_searchprocess(const char *pFindExe) { ULONG dwEprocess; ULONG i,nl; ULONG result,dwAddres; ULONG uSystemAddress = (ULONG)pSystem; PUCHAR pFileName; dwEprocess=0; nl=strlen(pFindExe); for (i = 0x80000000 ;i<uSystemAddress;i+=4) { result = Process_validpage(i); if (result == VALID) { dwAddres=*(PULONG)i; if (( dwAddres & 0xFFFF0000) == pebAddress) { if(Process_IsARealProcess(i)) { pFileName = (PUCHAR)((i-PEB_OFFSET) + EPROCESS_NAME_OFFSET); //DbgPrint("strimcp.......:%s.\r\n",pFileName); if(Process_IsEnd(i-PEB_OFFSET)==FALSE) if(Fun_Mymemicmp(pFileName,pFindExe,nl)==0) { dwEprocess=(i-PEB_OFFSET); break; } } } } else if(result == PTE_INVALID) { i -=4; i += 0x1000;//4k } else{ i-=4; i+= 0x400000;//4mb } } if(dwEprocess==0) DbgPrint("Process No Find.\r\n"); else DbgPrint("Process Is Find:[%s]\r\n",pFileName); return dwEprocess; } void Process_GetAllProcessInfo() { PEPROCESS pEProcess; ULONG i,nc,nl; ULONG result,dwAddres; char strtemp[MAX_PATH]; ULONG uSystemAddress = (ULONG)pSystem; //DbgPrint("Begin Find Addres:%X,Find Flag:%X.\n",uSystemAddress,pebAddress); m_tempMaxBuff[0]=0; nc=0; for (i = 0x80000000 ;i<uSystemAddress;i+=4) { result = Process_validpage(i); if (result == VALID) { dwAddres=*(PULONG)i; if (( dwAddres & 0xFFFF0000) == pebAddress) { if(Process_IsARealProcess(i)) { if(Process_GetProcessInfo(i-PEB_OFFSET,strtemp)) { nc=nc+strlen(strtemp); i += EPROCESS_SIZE; if(nc>65536) { strcat(m_tempMaxBuff,"(OV)"); return; }else Fun_AppendStr(m_tempMaxBuff,strtemp,FALSE); } } } } else if(result == PTE_INVALID) { i -=4; i += 0x1000;//4k } else{ i-=4; i+= 0x400000;//4mb } } // DbgPrint("OutLen:%d\r\n",nc); // DbgPrint(m_tempMaxBuff); if(nc>0) Glable_SetResultString(m_tempMaxBuff); else Glable_SetResultString("No Find!"); } ULONG Process_GetPebAddress() { ULONG Address; PEPROCESS pEProcess; //由于system进程的peb总是零 我们只有到其他进程去找了 pEProcess = (PEPROCESS)((ULONG)((PLIST_ENTRY)((ULONG)pSystem + PROCESS_LINK_OFFSET))->Flink - PROCESS_LINK_OFFSET); //DbgPrint("SechProcess1 pSystem=%X,pEProcess=%X \n",pSystem,pEProcess ); Address = *(PULONG)((ULONG)pEProcess + PEB_OFFSET); //DbgPrint("SechProcess2 FindFlag=%X \n",(Address & 0xFFFF0000) ); return (Address & 0xFFFF0000); } PUCHAR Process_GetProcessName(PEPROCESS peb) { return (PUCHAR)(peb + EPROCESS_NAME_OFFSET); } BOOL Process_GetProcessInfo(ULONG dwAddres,char *pOut) { PLARGE_INTEGER ExitTime; ULONG PID; PUCHAR pFileName; BOOL rb=TRUE; ExitTime = (PLARGE_INTEGER)(dwAddres + PROCESS_EXIT_TIME_OFFSET); PID = *(PULONG)(dwAddres + PROCESS_ID_OFFSET); pFileName = (PUCHAR)(dwAddres + EPROCESS_NAME_OFFSET); if(ExitTime->QuadPart != 0) //已经结束的进程的ExitTime为非零 { //sprintf(pOut,"[E]0x%08X %04d %s",dwAddres,PID,pFileName); rb=FALSE; } else sprintf(pOut,"0x%08X %04d %s",dwAddres,PID,pFileName); return rb; } |
|
有做游戏的大牛吗??????????请问这种模型是用什么工具做出来的??
这个 lgo 应该是私有格式。只有逆EXE才能知道结构和用法。 要么你先处理 3dmax 的 .x 文件,看看他们有没有共通之处。 |
|
|
|
[分享]辽宁沈阳的来哦
不见得少,只是不愿站出来而已 |
|
|
|
老师们过来看看,这几句大概意思是什么的。
push ebp ;保存原始EBP mov ebp,esp ;ESP 备份到EBP push ecx ;压ECX入栈 mov dword ptr ss:[ebp-4],ecx ;堆栈操作 mov eax,dword ptr ss:[ebp-4] ;其实就是上面的ECX mov ecx,dword ptr ds:[eax+4] ;取偏移吧 mov edx,dword ptr ss:[ebp-4];取原始ECX add ecx,dword ptr ds:[edx+C];累加 mov eax,dword ptr ss:[ebp-4];取原始ECX,其实ECX就是类指针 call dword ptr ds:[eax+8] ; call 062a79f0 调用类的函数,ECX为新函数据类指针 mov esp,ebp ;恢复ESP pop ebp ;恢复EBP retn ;返回 只是一个简单的类的函数调用,没看到有参数,应该是无参调用。如果有参的话,就是第一次那个 Push操作 |
|
求破解license文件的破解思路!
我也没解过 License 如果想解的话,先ida+od ,断他算法的位置。 当找到这个位置,算成功一半了。 方案A:逆算法。 方案B:找他识别结果的位置。不就是一个bool型的结果吗。你自己改喽。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值