Nisy 发表于 2008-10-23 21:43:36

带壳调试Aspr的程序

.

    Aspr虽然有脱壳辅助脚本 但大多数Aspr都使用了SDK 或者其他方式来保护输入表 即便有脚本而修复往往是很复杂的 所以更多的时候我们争取采用带壳调试

http://www.toprecorders.com/download.htm
目标软件 录音机

OD载入程序 运行 出现NAG窗体后 F12暂停来到这里:

0045A822^\74 B8                  JE SHORT MP3Recor.0045A7DC                         ; 上边是窗口的循环
0045A824    8945 F8                MOV DWORD PTR SS:,EAX                     ; 在这里下断

然后点试用 程序中断到0045A824这里 F8继续返回

0050EC94    833D 145B5200 00       CMP DWORD PTR DS:,0                        ; 关键变量
0050EC9B    75 2B                  JNZ SHORT MP3Recor.0050ECC8
0050EC9D    8B0D A8615200          MOV ECX,DWORD PTR DS:                      ; MP3Recor.00527B70
0050ECA3    8B09                   MOV ECX,DWORD PTR DS:
0050ECA5    B2 01                  MOV DL,1
0050ECA7    A1 80E15000            MOV EAX,DWORD PTR DS:
0050ECAC    E8 B375F4FF            CALL MP3Recor.00456264
0050ECB1    8B15 44625200          MOV EDX,DWORD PTR DS:                      ; MP3Recor.00528528
0050ECB7    8902                   MOV DWORD PTR DS:,EAX
0050ECB9    A1 44625200            MOV EAX,DWORD PTR DS:
0050ECBE    8B00                   MOV EAX,DWORD PTR DS:
0050ECC0    8B10                   MOV EDX,DWORD PTR DS:
0050ECC2    FF92 EC000000          CALL DWORD PTR DS:                         ; 这里弹出NAG窗口
0050ECC8    E8 2B8CFFFF            CALL MP3Recor.005078F8
0050ECCD    C3                     RETN

修改为:
0050EC94    C605 145B5200 01       MOV BYTE PTR DS:,1                         ; 关键变量
0050EC9B    EB 2B                  JMP SHORT MP3Recor.0050ECC8

因为程序在使用中还有很多地址在检测DS: 所以必须要进行赋值 至此分析完毕 用dll也可 用loader也可

km159 发表于 2008-10-23 22:12:51

去了NAG,还是有未注册字样

Nisy 发表于 2008-10-24 08:33:29

原帖由 km159 于 2008-10-23 22:12 发表 https://www.chinapyg.com/images/common/back.gif
去了NAG,还是有未注册字样


你再看下帖子 我们去NAG的修改肯定不相同

注册部分在这里 也可以通过Patch来显示注册给XX

注册部分:
0050F46F    8338 00         CMP DWORD PTR DS:,0
0050F472    74 79         JE SHORT MP3Recor.0050F4ED

Others:

00520FBE    8338 00         CMP DWORD PTR DS:,0
00520FC1    75 31         JNZ SHORT MP3Recor.00520FF4

00521B18    8338 00         CMP DWORD PTR DS:,0
00521B1B    0F85 92000000   JNZ MP3Recor.00521BB3

00520C0F    8338 00         CMP DWORD PTR DS:,0
00520C12    0F94C2          SETE DL

cdygr 发表于 2008-10-24 09:18:44

老大都给出了结果哈,参考一下,学习一下,

Luckly 发表于 2008-10-24 12:36:25

俺也来弄个aspr补丁....
纯属备份一下代码.下次直接复制.../:09
// Foward declarations of functions included in this code module:

// Code By luck
// MP3xxx?什么东东的JJ?
// 2008.10.24
// Http://Www.ChinaPYG.CoM

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR   lpCmdLine,
                     int       nCmdShow)
{
        // TODO: Place code here.
        CHAR PATH={0};
        GetCurrentDirectory(100,PATH);
        sprintf(PATH+strlen(PATH),"%s","\\MP3Recorder.exe");
    STARTUPINFO INFO={sizeof(STARTUPINFO)};
    PROCESS_INFORMATION INFORMATION;
        ZeroMemory(&INFORMATION,sizeof(PROCESS_INFORMATION));
        BOOL ISCREATE=CreateProcess(PATH,NULL,NULL,NULL,FALSE,CREATE_SUSPENDED,NULL,NULL,&INFO,&INFORMATION);
        if(!ISCREATE)
        {
       MessageBoxA(NULL,"无法创建进程!没有找到主程序文件","提示信息:",0x40);
           return 0;
        }
    ResumeThread(INFORMATION.hThread);
        Sleep(600);
        SuspendThread(INFORMATION.hThread);
        BYTE MYREAD;
        BYTE PACTH={0x01,0xEB};
        ReadProcessMemory(INFORMATION.hProcess,(LPVOID)0x50EC94,&MYREAD,1,NULL);
        if (MYREAD==0x83)
        {
                WriteProcessMemory(INFORMATION.hProcess,(LPVOID)0x50EEAF,&PACTH,1,NULL);
                WriteProcessMemory(INFORMATION.hProcess,(LPVOID)0x525B14,&PACTH,1,NULL);
               
        }
        ResumeThread(INFORMATION.hThread);
        ExitProcess(0);
        return 0;
}


[ 本帖最后由 Luckly 于 2008-10-24 13:24 编辑 ]

cdygr 发表于 2008-10-24 14:01:15

楼上的牛哥,什么东东哟,看不懂呢
页: [1]
查看完整版本: 带壳调试Aspr的程序