飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4408|回复: 5

[原创] 带壳调试Aspr的程序

[复制链接]

该用户从未签到

发表于 2008-10-23 21:43:36 | 显示全部楼层 |阅读模式
.

    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:[EBP-8],EAX                       ; 在这里下断

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

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

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

因为程序在使用中还有很多地址在检测DS:[525B14] 所以必须要进行赋值 至此分析完毕 用dll也可 用loader也可
0.GIF
PYG19周年生日快乐!
  • TA的每日心情

    2016-2-14 14:40
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2008-10-23 22:12:51 | 显示全部楼层
    去了NAG,还是有未注册字样
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2008-10-24 08:33:29 | 显示全部楼层
    原帖由 km159 于 2008-10-23 22:12 发表
    去了NAG,还是有未注册字样



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

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

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

    Others:

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

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

    00520C0F    8338 00         CMP DWORD PTR DS:[EAX],0
    00520C12    0F94C2          SETE DL
    00.GIF
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2021-9-9 20:17
  • 签到天数: 53 天

    [LV.5]常住居民I

    发表于 2008-10-24 09:18:44 | 显示全部楼层
    老大都给出了结果哈,参考一下,学习一下,
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-10-24 12:36:25 | 显示全部楼层
    俺也来弄个aspr补丁....
    纯属备份一下代码.下次直接复制.../:09
    // Foward declarations of functions included in this code module:

    // Code By luck[PYG]
    // 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[100]={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,"无法创建进程!没有找到主程序文件[MP3Recorder.exe]","提示信息:",0x40);
               return 0;
            }
        ResumeThread(INFORMATION.hThread);
            Sleep(600);
            SuspendThread(INFORMATION.hThread);
            BYTE MYREAD;
            BYTE PACTH[3]={0x01,0xEB};
            ReadProcessMemory(INFORMATION.hProcess,(LPVOID)0x50EC94,&MYREAD,1,NULL);
            if (MYREAD==0x83)
            {
                    WriteProcessMemory(INFORMATION.hProcess,(LPVOID)0x50EEAF,&PACTH[1],1,NULL);
                    WriteProcessMemory(INFORMATION.hProcess,(LPVOID)0x525B14,&PACTH[0],1,NULL);
                   
            }
            ResumeThread(INFORMATION.hThread);
            ExitProcess(0);
            return 0;
    }

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

    评分

    参与人数 1飘云币 +40 收起 理由
    Nisy + 40 PYG有你更精彩!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2021-9-9 20:17
  • 签到天数: 53 天

    [LV.5]常住居民I

    发表于 2008-10-24 14:01:15 | 显示全部楼层
    楼上的牛哥,什么东东哟,看不懂呢
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表