From 096cc99c3c0467be99781aa61f9fc46e0000dbaf Mon Sep 17 00:00:00 2001 From: longpanda Date: Wed, 13 Jul 2022 22:40:32 +0800 Subject: [PATCH] Fix a bug that VTOY_LINUX_REMOUNT option doesn't take effect in openSUSE. --- DMPATCH/dmpatch.c | 38 +++++++++++++++++++++--- IMG/cpio/ventoy/hook/ventoy-hook-lib.sh | 17 +++++++++-- IMG/cpio_x86/ventoy/tool/dm_patch_32.ko | Bin 5348 -> 75084 bytes IMG/cpio_x86/ventoy/tool/dm_patch_64.ko | Bin 7064 -> 7672 bytes 4 files changed, 49 insertions(+), 6 deletions(-) diff --git a/DMPATCH/dmpatch.c b/DMPATCH/dmpatch.c index 59001425..bcadc3de 100644 --- a/DMPATCH/dmpatch.c +++ b/DMPATCH/dmpatch.c @@ -82,12 +82,34 @@ static volatile ko_param g_ko_param = #define vdebug(fmt, args...) if(kprintf) kprintf(KERN_ERR fmt, ##args) -static int notrace dmpatch_replace_code(unsigned long addr, unsigned long size, int expect, const char *desc) +static unsigned char *g_get_patch[MAX_PATCH] = { NULL }; +static unsigned char *g_put_patch[MAX_PATCH] = { NULL }; + +static void notrace dmpatch_restore_code(unsigned char *opCode) +{ + unsigned long align; + + if (opCode) + { + align = (unsigned long)opCode / g_ko_param.pgsize * g_ko_param.pgsize; + set_mem_rw(align, 1); + *opCode = 0x80; + set_mem_ro(align, 1); + } +} + +static int notrace dmpatch_replace_code +( + unsigned long addr, + unsigned long size, + int expect, + const char *desc, + unsigned char **patch +) { int i = 0; int cnt = 0; unsigned long align; - unsigned char *patch[MAX_PATCH]; unsigned char *opCode = (unsigned char *)addr; vdebug("patch for %s 0x%lx %d\n", desc, addr, (int)size); @@ -147,7 +169,7 @@ static int notrace dmpatch_init(void) reg_kprobe = (kprobe_reg_pf)g_ko_param.reg_kprobe_addr; unreg_kprobe = (kprobe_unreg_pf)g_ko_param.unreg_kprobe_addr; - r = dmpatch_replace_code(g_ko_param.sym_get_addr, g_ko_param.sym_get_size, 2, "dm_get_table_device"); + r = dmpatch_replace_code(g_ko_param.sym_get_addr, g_ko_param.sym_get_size, 2, "dm_get_table_device", g_get_patch); if (r) { rc = -EINVAL; @@ -155,7 +177,7 @@ static int notrace dmpatch_init(void) } vdebug("patch dm_get_table_device success\n"); - r = dmpatch_replace_code(g_ko_param.sym_put_addr, g_ko_param.sym_put_size, 1, "dm_put_table_device"); + r = dmpatch_replace_code(g_ko_param.sym_put_addr, g_ko_param.sym_put_size, 1, "dm_put_table_device", g_put_patch); if (r) { rc = -EINVAL; @@ -174,7 +196,15 @@ out: static void notrace dmpatch_exit(void) { + int i = 0; + + for (i = 0; i < MAX_PATCH; i++) + { + dmpatch_restore_code(g_get_patch[i]); + dmpatch_restore_code(g_put_patch[i]); + } + vdebug("dmpatch_exit success\n"); } module_init(dmpatch_init); diff --git a/IMG/cpio/ventoy/hook/ventoy-hook-lib.sh b/IMG/cpio/ventoy/hook/ventoy-hook-lib.sh index 7f24c428..f6d9cb0f 100644 --- a/IMG/cpio/ventoy/hook/ventoy-hook-lib.sh +++ b/IMG/cpio/ventoy/hook/ventoy-hook-lib.sh @@ -278,11 +278,23 @@ ventoy_dm_patch() { $CAT /proc/kallsyms | $BUSYBOX_PATH/sort > $VTOY_PATH/kallsyms - vtLine=$($VTOY_PATH/tool/vtoyksym dm_get_table_device $VTOY_PATH/kallsyms) + if $GREP -m1 -q 'open_table_device.isra' $VTOY_PATH/kallsyms; then + vtLine=$($VTOY_PATH/tool/vtoyksym open_table_device.isra $VTOY_PATH/kallsyms) + vtlog "get open_table_device.isra address $vtLine" + else + vtLine=$($VTOY_PATH/tool/vtoyksym dm_get_table_device $VTOY_PATH/kallsyms) + vtlog "get dm_get_table_device address $vtLine" + fi get_addr=$(echo $vtLine | $AWK '{print $1}') get_size=$(echo $vtLine | $AWK '{print $2}') - vtLine=$($VTOY_PATH/tool/vtoyksym dm_put_table_device $VTOY_PATH/kallsyms) + if $GREP -m1 -q 'close_table_device.isra' $VTOY_PATH/kallsyms; then + vtLine=$($VTOY_PATH/tool/vtoyksym close_table_device.isra $VTOY_PATH/kallsyms) + vtlog "get close_table_device.isra address $vtLine" + else + vtLine=$($VTOY_PATH/tool/vtoyksym dm_put_table_device $VTOY_PATH/kallsyms) + vtlog "get dm_put_table_device address $vtLine" + fi put_addr=$(echo $vtLine | $AWK '{print $1}') put_size=$(echo $vtLine | $AWK '{print $2}') @@ -738,6 +750,7 @@ ventoy_udev_disk_common_hook() { fi if $GREP -q 'dm_patch' /proc/modules; then + vtlog "remove dm_patch module." $BUSYBOX_PATH/rmmod dm_patch fi } diff --git a/IMG/cpio_x86/ventoy/tool/dm_patch_32.ko b/IMG/cpio_x86/ventoy/tool/dm_patch_32.ko index ff41d2c9752da0112c5e13a6791834c784d5a33b..0b4280db07ded16735d352a242e2fd3637ed697f 100644 GIT binary patch literal 75084 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 delta 1859 zcmZ`)eP~-%6u&pg(#FOmP20SrP3;Fmldj?lt8LwA`ykaDiQu#w7Te9x`9~3SLZhO8 zBqc5KEYa2jV)3t`L&mH!iXdgojMf#w)>6ey%G`!Zhn*j*ACs;1dCzO zs`j0FQ0+}<6Y@j9p&$uv~$%j^*Kf+4k=AM)nn&O<&J@-7GWsWp;nr zQu<2XTf&TeHvO%d+j3@>5`&A$e7950eL<62e6g^8rl;fY^ia#HL8p@A!JLMbu(!Fq^}N+ zII3w9UUf9~#&M38xi;JEh|Tue>`m-L#4nt~7n*gzO-HNe!j`V{%44UX)w$clOzzry zaLoAJ;=sGfU*)>Ap9d{G_?sm@<+!G#pKOFEs(lEg5p`73kC0^n; zEJ8|!o`&OoCG(kJ1z2R~1TMX$UgEfeILR|2`-eiW3fzwuhKqp7HDh05V7Pe2PUo7E zlBOcCOAu8&k`rW)uxo_g1Lw+>SSM!#yu7{4V*)R>1vGFRE(R)KIuLUWJwG%IzKW3t zja)J#-ftIwWJ`NRr82H%`v?_avO=MYxTf%RP-N_;ZptkaF5;LM1up@L^e@&DIMzZ= z%27C7sf3@~CMpXJoPFIE8x_G5P+p~E-nYc!S;Pf9W5as|K4-(_IecTon}z?6HeCAu zV&WMh$7c?kkbf)zI2L?Rwk$X{Dhs&8Jmkpah|4TE`pe@A+<`-9@UC$94v2q5upXCs zNClPfUJHxO$TR7NNzNuLESBlVKrWAiTBXo_xWRp1u=rRryao-55+2=#oqz+1l9<|t zJt1&;BbLpwZinIf>Ne_!@|rG>$N2dW@&WYKw9_5%c1;&`!-}y6 zBAt$C5T1y1g?5^GLZ&LNrEoG5r8{9I(#6-S?jS^KW0k`BnCKfnZVEhGyW3L`-?=`R Qs%`T;6*TkA^3rwx1I_+A#Q*>R