Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mix3的求助 #5

Open
bluboy-official opened this issue Jun 11, 2020 · 6 comments
Open

mix3的求助 #5

bluboy-official opened this issue Jun 11, 2020 · 6 comments

Comments

@bluboy-official
Copy link

看了半天wiki 我使用了winhex检索了logo
可是奇怪的是 我搜到了9个带logo的十六进制值😂
所以我把它提取了出来 想看看大佬能帮帮忙吗?
https://c-t.work/s/f4e61d1fab9144附上我的logo.img的链接

@moonheart
Copy link
Owner

moonheart commented Jun 16, 2020

扫描了下, 这个 logo.img 的图有点多, 可能需要修改下代码, 对更多的图片进行处理.

Header:

使用 HxD Hex Editor 查找, offset0: 0x4000

4C 4F 47 4F 21 21 21 21 05 00 00 00 DB 01 00 00 
E0 01 00 00 F5 01 00 00 D5 03 00 00 01 00 00 00 
D6 03 00 00 DB 01 00 00 B1 05 00 00 3B 07 00 00 
EC 0C 00 00 3A 02 00 00 26 0F 00 00 3A 02 00 00 
60 11 00 00 3A 02 00 00 9A 13 00 00 3A 02 00 00
LOGO!!!!����Û���à���õ���Õ�������Ö���Û���±���;���ì��:���&���:���`���:���š���:���

binwalk 扫描解压结果:

binwalk --dd='.*' logo.img
DECIMAL HEXADECIMAL DESCRIPTION
20480 0x5000 PC bitmap, Windows 3.x format,, 300 x 2160 x 24
1966080 0x1E0000 PC bitmap, Windows 3.x format,, 760 x 900 x 24
4018176 0x3D5000 PNG image, 178 x 350, 8-bit/color RGB, non-interlaced
4019211 0x3D540B Zlib compressed data, best compression
4022272 0x3D6000 PC bitmap, Windows 3.x format,, 300 x 2160 x 24
5967872 0x5B1000 PC bitmap, Windows 3.x format,, 1080 x 2340 x 24
13549568 0xCEC000 PC bitmap, Windows 3.x format,, 360 x 2160 x 24
15884288 0xF26000 PC bitmap, Windows 3.x format,, 360 x 2160 x 24
18219008 0x1160000 PC bitmap, Windows 3.x format,, 360 x 2160 x 24
20553728 0x139A000 PC bitmap, Windows 3.x format,, 360 x 2160 x 24

image

@bluboy-official
Copy link
Author

非常感谢大佬 那请问3D540B那两个文件应该怎么处理?不用动吗?

@moonheart
Copy link
Owner

多出来的文件原样写回去应该就可以了

@bluboy-official
Copy link
Author

多出来的文件原样写回去应该就可以了

好的 会尝试一下(做好了救急的准备)

@ilharp
Copy link

ilharp commented Jul 11, 2020

在这里也顺便给后来的同学贴个条。

代码修改

Mix 3 的同学可以直接往下看,下面有编译好的包。

先把下面的一堆代码复制到记事本里面。

这里面有一堆代码
using System;
using System.IO;

namespace LogoGen
{
    class Program
    {
        static void Main(string[] args)
        {
            #region Prepare Data

            string rootPath = AppDomain.CurrentDomain.BaseDirectory;

            long[] positions =
            {
                0x5000, 0x1E0000, 0x3D5000, 0x3D540B, 0x3D6000, 0x5B1000, 0xCEC000, 0xF26000, 0x1160000, 0x139A000,
                0x15D4000
            };

            var outFile = File.Open(Path.Combine(rootPath, "logo_new.img"), FileMode.OpenOrCreate);

            Stream imgStream = null;

            #endregion

            #region 程序A部分

            for (int i = 0; i < positions.Length - 1; i++)
            {
                imgStream = File.Open(Path.Combine(rootPath, (i + 1) + ".bmp"), FileMode.OpenOrCreate);
                outFile.Seek(positions[i], SeekOrigin.Begin);
                while (outFile.Position < positions[i + 1])
                {
                    imgStream.WriteByte((byte)outFile.ReadByte());
                }
                imgStream.Dispose();
            }

            outFile.Dispose();

            #endregion

            #region 程序B部分

            for (int i = 0; i < positions.Length - 1; i++)
            {
                imgStream = File.Open(Path.Combine(rootPath, (i + 1) + ".bmp"), FileMode.OpenOrCreate);
                outFile.Seek(positions[i], SeekOrigin.Begin);
                imgStream.CopyTo(outFile);
                imgStream.Dispose();
            }

            outFile.Dispose();

            #endregion
        }
    }
}

Mix 3 同学的话下面已经给出了解压之后的图包,可以直接看最下面。不是 Mix 3 的同学的话先按照 Repo Owner 大大的指导下载 Python 之后下载 BinWalk 安装之后运行 binwalk --dd='.*' MIMAX3_logo.img 查看HEX位置,并且照葫芦画瓢将 positions 里面的值替换成 binwalk 输出的值,英文逗号分隔。

然后去 这里 下载一份 dotNET 安装好。

程序A

将上面的 程序B部分(也就是后面的 #region#endregion 部分)全部删掉之后保存成 .cs 文件。然后打开 C:\Windows\Microsoft.NET\Framework\v4.0.30319\ 目录在命令行下面运行 csc /out:程序A.exe 修改之后的程序位置.cs。你会找到一个程序A,把他复制到一个文件夹里面之后把你的 logo.img 复制一份 logo_new.img 也放到这个文件夹下面。双击运行之后你的文件夹下面就会出现一堆 bmp 文件,可以打开图片的 bmp 文件请随意修改。

程序B

将上面的 程序A部分(也就是中间一点的 #region#endregion 部分)全部删掉之后保存成 .cs 文件,然后再生成一次,这次生成 程序B。仍然复制到刚才的文件夹下面直接双击,logo_new.img 就是修改之后的镜像了。你可以使用 fastboot 刷入新的镜像。

贴条

这里有一个 Mix 3 打包好的 图包 和一个 程序B。直接解压修改图包里面的图然后按照上面的方法跑一遍程序B即可使用 fastboot 刷入新的镜像。

@moonheart moonheart pinned this issue Jul 12, 2020
@moonheart
Copy link
Owner

@Afanyiyu 非常感谢您细致的讲解!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants