解码shell code的/x00

博主表示shell code对自己来说很难,汇编不懂,但可在C++中提取,不过提取的shell code中有很多/x00。网上给出解决办法,将00改为99,执行shell code前运行解码程序还原,还给出了具体的解码程序代码。

关于shell code,对我这个菜鸟来说真的是好难,汇编不懂,用汇编写,我都不敢想,不过在c++中还是可以提取的,只是有好多的/x00,很是烦啊` 最近在网上看到了解决这个问题的办法,如你提取的shell code是这样的
/x55/x00/x52/x8B/xEC/x83/xEC/x20/x33/xC9
/xC6/x00/xF5/x6D/xC6/x45/xF6/x73/xC6/x45
/xF7/x76/xC6/x45/xF8/x63/xC6/x45/xF9/x72
里面有2个00,那里说是这样的,1.将00该为99,在执行shell code前去执行解码程序,将他还原,解码程序是这样的

__asm
{
mov eax,esp; //这是溢出后执行jmp esp后执行的第一条指令,esp指向当前指令地址,意义是"获得解码程序起址"
add eax,44h; //解码子程序有x个字节(解码程序起址+x=code起址,再加上2偏移)使eax指向第一个编码过的0x99
xor [eax],99h //解码第一个0x99,这个操作的意义是"0x99异或0x99=0x00",即还原成0x00
add eax,28h //指向第95偏移
xor [eax],99h //解码第二个0x99
add eax,2eh //指向第140偏移
xor [eax],99h //解码第三个0x99
}

ar@PROHACKER:/mnt/c/Users/PERTZ/OneDrive/שולחן העבודה/system/app/JME_abupdate$ adb shell getprop ro.build.version.release 8.1.0 car@PROHACKER:/mnt/c/Users/PERTZ/OneDrive/שולחן העבודה/system/app/JME_abupdate$ adb shell getprop ro.build.display.id MICB1A06 car@PROHACKER:/mnt/c/Users/PERTZ/OneDrive/שולחן העבודה/system/app/JME_abupdate$ adb shell cat /system/build.prop | grep ro.build ro.build.project.id=JMEV_3J320_20230106-212302_b10 ro.build.team.id=JMEV_3J320_20230106-212302_b10_user ro.build.hardware.id=TSP_3J2_SOC_V1.3 ro.build.btmode.id=ivt ro.build.id=JMEV_3J320_20230106-212302_b10 ro.build.display.id=MICB1A06 ro.build.version.incremental=1910 ro.build.version.sdk=27 ro.build.version.preview_sdk=0 ro.build.version.codename=REL ro.build.version.all_codenames=REL ro.build.version.release=8.1.0 ro.build.version.security_patch=2019-01-05 ro.build.version.base_os= ro.build.date=Fri Jan 6 21:36:31 CST 2023 ro.build.date.utc=1673012191 ro.build.type=user ro.build.user=jenkins ro.build.host=00814551f58f ro.build.tags=test-keys ro.build.flavor=jmev_gse-user # ro.build.product is obsolete; use ro.product.device ro.build.product=msm8996_gvmq ro.build.description=jmev_gse-user 8.1.0 OPM1.171019.026 1910 test-keys ro.build.fingerprint=Android/jmev_gse/msm8996_gvmq:8.1.0/OPM1.171019.026/1910:user/test-keys ro.build.characteristics=default ro.build.appid=1.0.01.1022 car@PROHACKER:/mnt/c/Users/PERTZ/OneDrive/שולחן העבודה/system/appcar@PROHACKER:/mnt/c/Users/PERTZ/OneDrive/שולחן העבודה/system/app/JME_car@PROHACKER:/mnt/c/Users/PERTZ/OneDrive/שולcar@PROHACKER:/mnt/c/Users/PERTZ/OneDrive/שולחן העבודה/system/app/JME_abupdate$ car@PROHACKER:/mnt/c/Users/PERTZ/OneDrive/שול חן העבודה/system/app/JME_abupdate$ adb shell msm8996_gvmq:/ # getprop ro.build.display.i> MICB1A06 msm8996_gvmq:/ # lspci | grep -i audio 1|msm8996_gvmq:/ # lspci msm8996_gvmq:/ # lspci msm8996_gvmq:/ # lspci | grep-i audio /system/bin/sh: grep-i: not found 127|msm8996_gvmq:/ # lshw -C multimedia /system/bin/sh:
03-20
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值