|
[求助]二进制程序变形工具
VMP~~~~~~~~~ |
|
得到一个类的构造函数有办法跟出整个类?
可以跟出:虚函数表,父类,被初始化的成员数据 其它的,比如非虚成员函数\静态成员函数和数据\未初始化的成员数据,则要靠分析其它相关代码得到. 总的来说,类这种高级结构,在经过编译后,丢失了很多信息.要完整的还原整个类,只有靠阅读大量相关联的代码才能实现. |
|
[求助]一个CALL直接用ESP的话,写调用这个CALL的代码是不是要给ESP赋值呀?
不用,你这样赋值反而有可能破坏堆栈数据。 |
|
(原型+图+源码)热血传奇购药CALL调用成功,但总会弹出一对话框?
asm pushad push ebp; //保存原始EBP mov ebp,esp; //原始ESP保存进EBP里 sub esp, $10 // 这才是创建临时变量,后面那句只是取地址,暂时只在你的代码中发现这个问题。 lea eax,[ebp-$10]//创建一个临时变量 mov esi,$63E834 mov esi,[esi] add esi,$0f8 mov esi,[esi] add esi,4 mov esi,[esi] add esi,0 mov esi,[esi] mov edx,esi mov ebx,$00404dd8 call ebx//调用这个CALL后,临时变量赋了值 mov eax,[ebp-$10]//然后将这个临时变量传给EAX push eax mov ecx,[esi+$18] mov edx,$5f6620 mov edx,[edx] mov edx,[edx] mov eax,$006400BC mov eax,[eax] mov ebx,$0055c940 call ebx//购买物品CALL mov esp,ebp pop ebp popad end; |
|
[原创]逆一个驱动中带Exception的函数
支持继续~~~~~~~ |
|
[求助]这种情况该如何回溯呢
[EBP-48] 这是一个局部变量,是一个class object,靠构造函数进行初始化,构造函数应该就是这里: 0046E659 |. 8D4D B8 LEA ECX,DWORD PTR SS:[EBP-48] 0046E65C |. E8 6FC46500 CALL Zone.00ACAAD0 |
|
[讨论]挑战小牛,大牛,老牛,黄牛,娱乐一下!
已加~~~~~~~~~~~~ |
|
一个网络加速器的验证方式的疑惑,几乎所有的可能都试过了,还是过不了
至于你说的flyfox.dll调用了GetAdaptersInfo函数,你看看调用它的函数都干了嘛吧(从导出函数名GetLocalIPs就可以看出来)。 01 int __cdecl GetLocalIPs(ULONG SizePointer) 02 { 03 int v1; // edi@1 04 void *v2; // esi@3 05 void *v3; // ebp@5 06 void *v5; // eax@3 07 08 v1 = SizePointer; 09 if ( *(_DWORD *)(SizePointer + 4) ) 10 j__free(*(void **)(SizePointer + 4)); 11 *(_DWORD *)(v1 + 4) = 0; 12 *(_DWORD *)(v1 + 8) = 0; 13 *(_DWORD *)(v1 + 12) = 0; 14 SizePointer = 0x280u; 15 v5 = operator new(0x280u); 16 v2 = v5; 17 if ( GetAdaptersInfo((PIP_ADAPTER_INFO)v5, &SizePointer) == ERROR_BUFFER_OVERFLOW ) 18 { 19 j__free(v2); 20 v2 = operator new(SizePointer); 21 } 22 v3 = v2; 23 if ( !GetAdaptersInfo((PIP_ADAPTER_INFO)v2, &SizePointer) ) 24 { 25 for ( ; v2; v2 = *(void **)v2 ) 26 sub_10002670(v1, (int)v2); 27 } 28 j__free(v3); 29 return 0; 30 } 31 |
|
一个网络加速器的验证方式的疑惑,几乎所有的可能都试过了,还是过不了
//------------------------------------------------------------------------------------------ // // 获取MAC地址函数 // // 工作机制:创建进程执行"ipconfig/all"命令,然后在命令输出结果中查找字符串 // "Physical Address. . . . . . . . . : ",如果找到,其后紧跟着的就是MAC地址 // //------------------------------------------------------------------------------------------ 0041CA30 /$ 55 push ebp 0041CA31 |. 8BEC mov ebp, esp 0041CA33 |. 83E4 F8 and esp, FFFFFFF8 0041CA36 |. 6A FF push -1 0041CA38 |. 68 CC214500 push 004521CC ; SE 处理程序安装 0041CA3D |. 64:A1 0000000>mov eax, dword ptr fs:[0] 0041CA43 |. 50 push eax 0041CA44 |. 64:8925 00000>mov dword ptr fs:[0], esp 0041CA4B |. 51 push ecx 0041CA4C |. B8 AC270000 mov eax, 27AC 0041CA51 |. E8 7A130100 call 0042DDD0 0041CA56 |. A1 B4884500 mov eax, dword ptr [4588B4] 0041CA5B |. 8B0D B8884500 mov ecx, dword ptr [4588B8] 0041CA61 |. 8B15 BC884500 mov edx, dword ptr [4588BC] 0041CA67 |. 53 push ebx 0041CA68 |. 56 push esi 0041CA69 |. 57 push edi 0041CA6A |. 894424 28 mov dword ptr [esp+28], eax 0041CA6E |. 66:A1 C088450>mov ax, word ptr [4588C0] 0041CA74 |. 894C24 2C mov dword ptr [esp+2C], ecx 0041CA78 |. 68 8C884500 push 0045888C ; ASCII "Physical Address. . . . . . . . . : " 0041CA7D |. 8D4C24 18 lea ecx, dword ptr [esp+18] 0041CA81 |. 895424 34 mov dword ptr [esp+34], edx 0041CA85 |. 66:894424 38 mov word ptr [esp+38], ax 0041CA8A |. E8 A16CFEFF call 00403730 0041CA8F |. 8B4D 08 mov ecx, dword ptr [ebp+8] 0041CA92 |. 33FF xor edi, edi 0041CA94 |. 57 push edi 0041CA95 |. 68 2C504500 push 0045502C 0041CA9A |. 89BC24 CC2700>mov dword ptr [esp+27CC], edi 0041CAA1 |. E8 5A5EFEFF call 00402900 0041CAA6 |. 57 push edi ; /=== 创建管道,用于接收命令执行结果 === 0041CAA7 |. 8D4C24 3C lea ecx, dword ptr [esp+3C] ; | 0041CAAB |. 51 push ecx ; |pSecurity 0041CAAC |. 8D5424 20 lea edx, dword ptr [esp+20] ; | 0041CAB0 |. 52 push edx ; |pWriteHandle 0041CAB1 |. 8D4424 2C lea eax, dword ptr [esp+2C] ; | 0041CAB5 |. 50 push eax ; |pReadHandle 0041CAB6 |. C74424 48 0C0>mov dword ptr [esp+48], 0C ; | 0041CABE |. 897C24 4C mov dword ptr [esp+4C], edi ; | 0041CAC2 |. C74424 50 010>mov dword ptr [esp+50], 1 ; | 0041CACA |. FF15 94424500 call dword ptr [<&KERNEL32.CreatePipe>] ; \=========================================== 0041CAD0 |. 3BC7 cmp eax, edi 0041CAD2 |. 0F84 05010000 je 0041CBDD 0041CAD8 |. 8D4424 58 lea eax, dword ptr [esp+58] 0041CADC |. 50 push eax ; /pStartupinfo 0041CADD |. C74424 5C 440>mov dword ptr [esp+5C], 44 ; | 0041CAE5 |. FF15 98424500 call dword ptr [<&KERNEL32.GetStartupInfoA>; \GetStartupInfoA 0041CAEB |. 8B4424 18 mov eax, dword ptr [esp+18] 0041CAEF |. 8D4C24 44 lea ecx, dword ptr [esp+44] ; === 创建进程,执行命令 ipconfig/all === 0041CAF3 |. 51 push ecx ; /pProcessInfo 0041CAF4 |. 8D5424 5C lea edx, dword ptr [esp+5C] ; | 0041CAF8 |. 52 push edx ; |pStartupInfo 0041CAF9 |. 57 push edi ; |CurrentDir 0041CAFA |. 57 push edi ; |pEnvironment 0041CAFB |. 57 push edi ; |CreationFlags 0041CAFC |. 6A 01 push 1 ; |InheritHandles = TRUE 0041CAFE |. 57 push edi ; |pThreadSecurity 0041CAFF |. 898424 B40000>mov dword ptr [esp+B4], eax ; | 0041CB06 |. 898424 B00000>mov dword ptr [esp+B0], eax ; | 0041CB0D |. 57 push edi ; |pProcessSecurity 0041CB0E |. 8D4424 48 lea eax, dword ptr [esp+48] ; | 0041CB12 |. 50 push eax ; |CommandLine 0041CB13 |. 57 push edi ; |ModuleFileName 0041CB14 |. 66:89BC24 B00>mov word ptr [esp+B0], di ; | 0041CB1C |. C78424 AC0000>mov dword ptr [esp+AC], 101 ; | 0041CB27 |. FF15 A0424500 call dword ptr [<&KERNEL32.CreateProcessA>>; \=========================================== 0041CB2D |. 8BF0 mov esi, eax 0041CB2F |. E8 6D590200 call 004424A1 0041CB34 |. 8B10 mov edx, dword ptr [eax] 0041CB36 |. 8BC8 mov ecx, eax 0041CB38 |. FF52 0C call dword ptr [edx+C] 0041CB3B |. 8D58 10 lea ebx, dword ptr [eax+10] 0041CB3E |. 895C24 10 mov dword ptr [esp+10], ebx 0041CB42 |. 3BF7 cmp esi, edi 0041CB44 |. C68424 C42700>mov byte ptr [esp+27C4], 1 0041CB4C |. 74 6D je short 0041CBBB 0041CB4E |. 8B4424 44 mov eax, dword ptr [esp+44] 0041CB52 |. 68 B80B0000 push 0BB8 ; /Timeout = 3000. ms 0041CB57 |. 50 push eax ; |hObject 0041CB58 |. FF15 30434500 call dword ptr [<&KERNEL32.WaitForSingleOb>; \WaitForSingleObject 0041CB5E |. 8B4C24 18 mov ecx, dword ptr [esp+18] 0041CB62 |. 8B35 A4424500 mov esi, dword ptr [<&KERNEL32.CloseHandl>; kernel32.CloseHandle 0041CB68 |. 51 push ecx ; /hObject 0041CB69 |. FFD6 call esi ; \CloseHandle 0041CB6B |. 33C0 xor eax, eax 0041CB6D |. B9 C4090000 mov ecx, 9C4 0041CB72 |. 8DBC24 A00000>lea edi, dword ptr [esp+A0] 0041CB79 |. F3:AB rep stos dword ptr es:[edi] 0041CB7B |. 8B4C24 20 mov ecx, dword ptr [esp+20] 0041CB7F |. 6A 00 push 0 ; /== 读取命令输出结果 == 0041CB81 |. 8D5424 58 lea edx, dword ptr [esp+58] ; | 0041CB85 |. 52 push edx ; |pBytesRead 0041CB86 |. AA stos byte ptr es:[edi] ; | 0041CB87 |. 68 10270000 push 2710 ; |BytesToRead = 2710 (10000.) 0041CB8C |. 8D8424 AC0000>lea eax, dword ptr [esp+AC] ; | 0041CB93 |. 50 push eax ; |Buffer 0041CB94 |. 51 push ecx ; |hFile 0041CB95 |. FF15 9C424500 call dword ptr [<&KERNEL32.ReadFile>] ; \=========================================== 0041CB9B |. 85C0 test eax, eax 0041CB9D |. 75 7E jnz short 0041CC1D 0041CB9F |. 8B5424 18 mov edx, dword ptr [esp+18] 0041CBA3 |. 52 push edx ; /hObject 0041CBA4 |. FFD6 call esi ; \CloseHandle 0041CBA6 |. 8B4424 44 mov eax, dword ptr [esp+44] 0041CBAA |. 50 push eax ; /hObject 0041CBAB |. FFD6 call esi ; \CloseHandle 0041CBAD |. 8B4C24 48 mov ecx, dword ptr [esp+48] 0041CBB1 |. 51 push ecx ; /hObject 0041CBB2 |. FFD6 call esi ; \CloseHandle 0041CBB4 |. 8B5424 20 mov edx, dword ptr [esp+20] 0041CBB8 |. 52 push edx ; /hObject 0041CBB9 |. FFD6 call esi ; \CloseHandle 0041CBBB |> 8D43 F0 lea eax, dword ptr [ebx-10] 0041CBBE |. C68424 C42700>mov byte ptr [esp+27C4], 0 0041CBC6 |. 8D48 0C lea ecx, dword ptr [eax+C] 0041CBC9 |. 83CA FF or edx, FFFFFFFF 0041CBCC |. F0:0FC111 lock xadd dword ptr [ecx], edx 0041CBD0 |. 4A dec edx 0041CBD1 |. 85D2 test edx, edx 0041CBD3 |. 7F 08 jg short 0041CBDD 0041CBD5 |. 8B08 mov ecx, dword ptr [eax] 0041CBD7 |. 8B11 mov edx, dword ptr [ecx] 0041CBD9 |. 50 push eax 0041CBDA |. FF52 04 call dword ptr [edx+4] 0041CBDD |> 8B4424 14 mov eax, dword ptr [esp+14] 0041CBE1 |. 83C0 F0 add eax, -10 0041CBE4 |. C78424 C42700>mov dword ptr [esp+27C4], -1 0041CBEF |. 8D48 0C lea ecx, dword ptr [eax+C] 0041CBF2 |. 83CA FF or edx, FFFFFFFF 0041CBF5 |. F0:0FC111 lock xadd dword ptr [ecx], edx 0041CBF9 |. 4A dec edx 0041CBFA |. 85D2 test edx, edx 0041CBFC |. 7F 08 jg short 0041CC06 0041CBFE |. 8B08 mov ecx, dword ptr [eax] 0041CC00 |. 8B11 mov edx, dword ptr [ecx] 0041CC02 |. 50 push eax 0041CC03 |. FF52 04 call dword ptr [edx+4] 0041CC06 |> 32C0 xor al, al 0041CC08 |. 8B8C24 BC2700>mov ecx, dword ptr [esp+27BC] 0041CC0F |. 64:890D 00000>mov dword ptr fs:[0], ecx 0041CC16 |. 5F pop edi 0041CC17 |. 5E pop esi 0041CC18 |. 5B pop ebx 0041CC19 |. 8BE5 mov esp, ebp 0041CC1B |. 5D pop ebp 0041CC1C |. C3 retn //------------------------------------------------------------------------------------------ // // 生成随机伪MAC字符串 // // 工作机制:如果获取MAC地址失败,则调用CoCreateGuid函数,取其后的6个字节 // 作为本机唯一标识。 // //------------------------------------------------------------------------------------------ 0041BD60 /$ 83EC 10 sub esp, 10 0041BD63 |. 8D0424 lea eax, dword ptr [esp] 0041BD66 |. 50 push eax 0041BD67 |. FF15 F4464500 call dword ptr [<&ole32.CoCreateGuid>] ; ole32.CoCreateGuid 0041BD6D |. 0FB64C24 0F movzx ecx, byte ptr [esp+F] 0041BD72 |. 0FB65424 0E movzx edx, byte ptr [esp+E] 0041BD77 |. 0FB64424 0D movzx eax, byte ptr [esp+D] 0041BD7C |. 51 push ecx 0041BD7D |. 0FB64C24 10 movzx ecx, byte ptr [esp+10] 0041BD82 |. 52 push edx 0041BD83 |. 0FB65424 13 movzx edx, byte ptr [esp+13] 0041BD88 |. 50 push eax 0041BD89 |. 0FB64424 16 movzx eax, byte ptr [esp+16] 0041BD8E |. 51 push ecx 0041BD8F |. 8B4C24 24 mov ecx, dword ptr [esp+24] 0041BD93 |. 52 push edx 0041BD94 |. 50 push eax 0041BD95 |. 68 B0874500 push 004587B0 ; ASCII "%02X%02X%02X%02X%02X%02X" 0041BD9A |. 51 push ecx 0041BD9B |. E8 306DFEFF call 00402AD0 0041BDA0 |. B0 01 mov al, 1 0041BDA2 |. 83C4 30 add esp, 30 0041BDA5 \. C3 retn //------------------------------------------------------------------------------------------ // // 将唯一标识(MAC地址或者随机6字节字符)保存到文件 // // 工作机制:程序首次在本机运行时,获取MAC地址,将其保存到C:\Program Files\Common Files // \cnflyfox\flyfox.dll文件,以后每次启动都从该文件读取MAC地址。 // //------------------------------------------------------------------------------------------ 00413170 /$ 6A FF push -1 00413172 |. 68 38154500 push 00451538 ; SE 处理程序安装 00413177 |. 64:A1 0000000>mov eax, dword ptr fs:[0] 0041317D |. 50 push eax 0041317E |. 64:8925 00000>mov dword ptr fs:[0], esp 00413185 |. 83EC 4C sub esp, 4C 00413188 |. 56 push esi 00413189 |. 8D4424 08 lea eax, dword ptr [esp+8] 0041318D |. 57 push edi 0041318E |. 50 push eax 0041318F |. 8BF1 mov esi, ecx 00413191 |. E8 DA8D0000 call 0041BF70 00413196 |. 68 78844500 push 00458478 ; ASCII "cnflyfox\" 0041319B |. 50 push eax 0041319C |. 8D4C24 14 lea ecx, dword ptr [esp+14] 004131A0 |. 51 push ecx 004131A1 |. C74424 6C 000>mov dword ptr [esp+6C], 0 004131A9 |. E8 F2F9FEFF call 00402BA0 004131AE |. 83C4 10 add esp, 10 004131B1 |. 8B4424 0C mov eax, dword ptr [esp+C] 004131B5 |. 83C0 F0 add eax, -10 004131B8 |. C64424 5C 02 mov byte ptr [esp+5C], 2 004131BD |. 8D50 0C lea edx, dword ptr [eax+C] 004131C0 |. 83C9 FF or ecx, FFFFFFFF 004131C3 |. F0:0FC10A lock xadd dword ptr [edx], ecx 004131C7 |. 49 dec ecx 004131C8 |. 85C9 test ecx, ecx 004131CA |. 7F 08 jg short 004131D4 004131CC |. 8B08 mov ecx, dword ptr [eax] 004131CE |. 8B11 mov edx, dword ptr [ecx] 004131D0 |. 50 push eax 004131D1 |. FF52 04 call dword ptr [edx+4] 004131D4 |> 8D4C24 1C lea ecx, dword ptr [esp+1C] |
|
一个网络加速器的验证方式的疑惑,几乎所有的可能都试过了,还是过不了
靠主观臆测和简单的测试,不严谨。 |
|
[转帖]key
哇咔咔,这个要顶 |
|
一个网络加速器的验证方式的疑惑,几乎所有的可能都试过了,还是过不了
你说用GetAdaptersInfo获取的MAC地址,那你把断点地址发来看看,程序在哪里调用的GetAdaptersInfo? |
|
[求助]图算法求助
直接用boost graph库吧 |
|
一个网络加速器的验证方式的疑惑,几乎所有的可能都试过了,还是过不了
没你想的那么猛,别听其他人瞎掰,你照我说的做,不能破解找我。 |
|
一个网络加速器的验证方式的疑惑,几乎所有的可能都试过了,还是过不了
默认采用网卡MAC地址作为唯一标识,如果取MAC地址失败,则随机生成6位数字。 然后将这个标识保存在下面的文件:C:\Program Files\Common Files\cnflyfox\flyfox.dll 解决办法: 1、 把flyfox.dll这个文件清空,然后把权限设置为任何人不可访问。 2、 将C:\windows\system32\ipconfig.exe文件删除或改名,为防止系统文件保护自动恢复,把C:\windows\system32\dllcache\ipconfig.exe也一并改名或删除。 删除ipconfig.exe的原因是飞狐靠这个来取得网卡MAC地址。 |
|
|
|
[求助]IDA代码还原
额的神~··· |
|
[求助]需要一位懂的格式分析的朋友请联系
删帖~~~~~~~~~~~~~~ |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值