我正在Nintendo 3DS上进行PID溢出,我认为可能存在某种方式来更快地完成它。 任天堂3DS有一个漏洞(一个愚蠢的)你可以溢出PID等于0来获得“赞成权”。这些漏洞通常会降级固件并安装自定义固件。 3dbrew.org/wiki/Main_Page你可以找到更多关于这个的信息。限制为0xFFFFFFFF,但需要很长时间才能获得此地址(因此下一个将是PID = 0)。
我的代码:
u64 titleid=0x0004001000024000; //promo video, US old3ds. your mileage may vary. it's good to experiment as not all title relaunch spamming works well or at all.
u32 procid;
u32 launch_flags=0;
u32 target=0xFFFFFFFF;
for(u32 i=0 ; i<0x80000000 ; i++){
NS_LaunchTitle(titleid, launch_flags, &procid); //loop until pid is right up next to the u32 wrap-around.
printf("%08X\n",(int)procid);
NS_TerminateProcessTID(titleid);
if(procid>=target)break;
}
答案 0 :(得分:0)
为了让循环执行得更快,最快的胜利就是删除printf语句。
如果你真的需要监控进度,为什么不打印每100次迭代呢?
例如:
if((i%100)==0)
printf("%08X\n",(int)procid);