Luigi Auriemma

aluigi.org (ARCHIVE-ONLY FORUM!)
It is currently 19 Jul 2012 11:57

All times are UTC [ DST ]





Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 
Author Message
 Post subject: Mw2 BADSTACKS
PostPosted: 22 Mar 2010 04:15 

Joined: 01 Sep 2009 23:44
Posts: 10
Hello once again gentlemen of the forum, I believe you have all heard of the newest installment of COD aka Mw2. Well I wanted to see how well the game was put together and so I researched and looked for vulnerability's. Well after running the game executable through IDA Pro v5 Disassembler. Well the results were very disturbing. I'm just glad it is not a gamespy game :D. basically I went to the error list (which was very long)! and went down a little ways to see the "badstack" error for a long column of text. the rest of the errors seemed engine related. well I'm going to release the list of BADSTACKS taken from the original error's with. Feel free to keep it for future use and referance. I guess badstacks could cause Stack Overflows which are really nasty. I reported this to VALVe and they were very kind and said that I should direct this to the publisher as well. A Happy almost ending.

Here is the Trouble Ticket I sent to VALVe:

Hello Valve support team, I have discovered a few very critical errors within the Call of Duty Modern Warfare 2 Game Executable, which can lead to a permenant game crash or worse. I am going to upload a log that contains the list of errors. The ones that concern me the most are BADSTACKS within the executable, this can cause Stack Overflows, which of course is a serious and fatal error. Also note the log is from a disassembler, I know I was breaking the Steam TOS and am sorry for breaking the said TOS, But I believe it is for the greater good, seeing as the errors I found were critical. I hope you do not get angry with me by banning me or filing a law suit of some sort, I have not exploited this and Am a truely concerned user. Please take this into account before taking any action upon me. I also am aware this might not be in your field to fix, but Maybe you a powerful game hosting/making company could report this to those who made the game so they can fix it!

My best wishes


VALVe's response:

Hello *name*, Thank you for contacting Steam Support. Support for Modern Warfare 2 is handled by the publisher - please follow the link below for instructions to contact Activision support: https://activision.custhelp.com/cgi-bin ... er/ask.php If you have any further questions, please let us know - we will be happy to assist you.


heres a non txt file version of the badstacks
Code:
.text:00401000  BADSTACK mov     eax, dword_9DB674                                                             
.text:004017B0  BADSTACK push    1               ; uPeriod                                                     
.text:00403420  BADSTACK mov     eax, 2044h                                                                     
.text:004048F0  BADSTACK mov     eax, [esp+arg_0]                                                               
.text:00406320  BADSTACK mov     eax, 1000h                                                                     
.text:00409220  BADSTACK mov     eax, 38DCh                                                                     
.text:00409910  BADSTACK mov     eax, 4008h                                                                     
.text:00409EB0  BADSTACK push    esi                                                                           
.text:0040C340  BADSTACK mov     eax, dword_D37810                                                             
.text:0040E420  BADSTACK mov     eax, 1000h                                                                     
.text:00410A00  BADSTACK mov     eax, 202Ch                                                                     
.text:00414390  BADSTACK mov     eax, 2040h                                                                     
.text:004149E0  BADSTACK mov     eax, 2000h                                                                     
.text:004153D0  BADSTACK mov     eax, 2044h                                                                     
.text:00417090  BADSTACK mov     eax, 2028h                                                                     
.text:004180E0  BADSTACK mov     eax, 20F0h                                                                     
.text:0041BD20  BADSTACK mov     eax, 1000h                                                                     
.text:0041C6A0  BADSTACK mov     eax, 2010h                                                                     
.text:0041E680  BADSTACK mov     eax, 0A07Ch                                                                   
.text:00423E90  BADSTACK sub     esp, 68h                                                                       
.text:00424154  BADSTACK fxch    st(2)                                                                         
.text:00427570  BADSTACK mov     eax, 201Ch                                                                     
.text:00429F90  BADSTACK mov     eax, 1090h                                                                     
.text:0042A760  BADSTACK push    esi                                                                           
.text:0042B1F0  BADSTACK mov     eax, 1000h                                                                     
.text:00434544  BADSTACK push    edi                                                                           
.text:004350B0  BADSTACK mov     eax, 2020h                                                                     
.text:0043C790  BADSTACK push    esi                                                                           
.text:0043DC10  BADSTACK mov     eax, [esp+arg_4]                                                               
.text:0043EBF0  BADSTACK push    esi                                                                           
.text:004427D0  BADSTACK mov     eax, 2008h                                                                     
.text:00446900  BADSTACK mov     eax, 8040h                                                                     
.text:004478F0  BADSTACK push    ebp                                                                           
.text:0044B390  BADSTACK mov     eax, 4000h                                                                     
.text:0044BA80  BADSTACK mov     eax, 300Ch                                                                     
.text:0044EE10  BADSTACK mov     eax, 1E04h                                                                     
.text:004572F0  BADSTACK push    ebx                                                                           
.text:0045B450  BADSTACK push    esi                                                                           
.text:0045DAA0  BADSTACK mov     eax, 4420h                                                                     
.text:0045E620  BADSTACK mov     eax, 2044h                                                                     
.text:00463D90  BADSTACK mov     eax, 2044h                                                                     
.text:00464050  BADSTACK push    ebx                                                                           
.text:00468180  BADSTACK mov     eax, 2000h                                                                     
.text:00468D50  BADSTACK mov     eax, 4430h                                                                     
.text:0046C840  BADSTACK cmp     byte_1BEE1BC, 0                                                               
.text:0046CD90  BADSTACK mov     eax, 2000h                                                                     
.text:0046DB00  BADSTACK mov     eax, 1424h                                                                     
.text:004722C0  BADSTACK push    esi                                                                           
.text:00476380  BADSTACK push    ebx                                                                           
.text:0047AC70  BADSTACK mov     eax, 2000h                                                                     
.text:0047B400  BADSTACK mov     eax, 1000h                                                                     
.text:0047C940  BADSTACK sub     esp, 74h                                                                       
.text:0047E910  BADSTACK call    sub_5E01A0                                                                     
.text:00481CB0  BADSTACK mov     eax, 2028h                                                                     
.text:00482A00  BADSTACK mov     eax, 1070h                                                                     
.text:004830A0  BADSTACK mov     eax, 1000h                                                                     
.text:00489160  BADSTACK mov     eax, 6008h                                                                     
.text:00490440  BADSTACK mov     eax, 2000h                                                                     
.text:00491170  BADSTACK push    esi                                                                           
.text:004918F0  BADSTACK mov     eax, 204Ch                                                                     
.text:00494F90  BADSTACK mov     eax, 1000h                                                                     
.text:00495F50  BADSTACK mov     eax, 2018h                                                                     
.text:0049A890  BADSTACK mov     eax, 1000h                                                                     
.text:0049C480  BADSTACK push    edi                                                                           
.text:0049E140  BADSTACK mov     eax, 28C4h                                                                     
.text:004A8E40  BADSTACK push    ebx                                                                           
.text:004AACC0  BADSTACK push    ebx                                                                           
.text:004ACBB0  BADSTACK mov     eax, [esp+arg_20]                                                             
.text:004AFB20  BADSTACK mov     eax, dword_D37810                                                             
.text:004B47E0  BADSTACK mov     eax, 1034h                                                                     
.text:004B9480  BADSTACK push    ebx                                                                           
.text:004BB740  BADSTACK mov     eax, 2000h                                                                     
.text:004C1460  BADSTACK mov     eax, 2000h                                                                     
.text:004C1DA0  BADSTACK push    esi                                                                           
.text:004C5F00  BADSTACK mov     eax, 400Ch                                                                     
.text:004C6980  BADSTACK mov     eax, 1000h                                                                     
.text:004C8A30  BADSTACK mov     eax, 4004h                                                                     
.text:004CA2F0  BADSTACK sub     esp, 20h                                                                       
.text:004CC9C0  BADSTACK mov     eax, 6028h                                                                     
.text:004CD560  BADSTACK push    esi                                                                           
.text:004CEC30  BADSTACK mov     eax, 2018h                                                                     
.text:004D6AC0  BADSTACK mov     eax, 1818h                                                                     
.text:004D85B0  BADSTACK mov     eax, 390Ch                                                                     
.text:004DBF40  BADSTACK mov     eax, 1000h                                                                     
.text:004DC490  BADSTACK mov     eax, 2000h                                                                     
.text:004E1DE0  BADSTACK mov     eax, 200Ch                                                                     
.text:004E3F30  BADSTACK push    ebx                                                                           
.text:004F0C60  BADSTACK mov     eax, 0A034h                                                                   
.text:004F32D0  BADSTACK mov     eax, 8000h                                                                     
.text:004F4120  BADSTACK push    ebx                                                                           
.text:004F5140  BADSTACK mov     eax, 8E10h                                                                     
.text:004F5B30  BADSTACK sub     esp, 0Ch                                                                       
.text:004F7710  BADSTACK mov     eax, 2028h                                                                     
.text:004FF4E0  BADSTACK mov     eax, 2000h                                                                     
.text:0050C6F0  BADSTACK push    ebx                                                                           
.text:0050FF20  BADSTACK push    ebp                                                                           
.text:005191B0  BADSTACK mov     eax, 3F70h                                                                     
.text:005194E0  BADSTACK mov     eax, dword_1F1CA98                                                             
.text:0052FD70  BADSTACK mov     eax, dword_1C91ADC                                                             
.text:00530B60  BADSTACK mov     eax, 48A8h                                                                     
.text:0053C040  BADSTACK mov     edx, dword_1C95EB8                                                             
.text:0053D970  BADSTACK mov     eax, 5320h                                                                     
.text:0053DCF0  BADSTACK mov     eax, 2314h                                                                     
.text:0053E100  BADSTACK mov     eax, 2310h                                                                     
.text:0053E480  BADSTACK mov     eax, 3318h                                                                     
.text:00545C50  BADSTACK mov     eax, 2000h                                                                     
.text:00547760  BADSTACK push    ebx                                                                           
.text:00555640  BADSTACK mov     eax, 1118h                                                                     
.text:00555740  BADSTACK mov     eax, 1118h                                                                     
.text:0055FF90  BADSTACK mov     eax, 2058h                                                                     
.text:005635C0  BADSTACK push    esi                                                                           
.text:0056DA10  BADSTACK sub     esp, 24h                                                                       
.text:0056F4F0  BADSTACK mov     eax, 1A94h                                                                     
.text:0057DA50  BADSTACK push    esi                                                                           
.text:00581180  BADSTACK push    esi                                                                           
.text:00582350  BADSTACK cmp     dword_A40454, 20h                                                             
.text:005844E0  BADSTACK mov     eax, 8010h                                                                     
.text:005890B0  BADSTACK mov     eax, 2018h                                                                     
.text:0058EAB0  BADSTACK mov     eax, 2840h                                                                     
.text:0058EE80  BADSTACK mov     eax, 1110h                                                                     
.text:00596430  BADSTACK mov     eax, 4514h                                                                     
.text:005CC880  BADSTACK push    esi                                                                           
.text:005D3940  BADSTACK mov     eax, [esp+arg_0]                                                               
.text:005DCF20  BADSTACK sub     esp, 804h                                                                     
.text:005DF110  BADSTACK mov     eax, 2048h                                                                     
.text:005E1500  BADSTACK mov     eax, 20BCh                                                                     
.text:005E91E0  BADSTACK mov     eax, 38A8h                                                                     
.text:005EE480  BADSTACK mov     eax, 68ECh                                                                     
.text:005F1660  BADSTACK sub     esp, 0BCh                                                                     
.text:005F3280  BADSTACK mov     eax, 20A4h                                                                     
.text:00602720  BADSTACK mov     eax, 1000h                                                                     
.text:00602AF0  BADSTACK mov     eax, 1000h                                                                     
.text:00603F00  BADSTACK mov     eax, 1000h                                                                     
.text:00603FF0  BADSTACK sub     esp, 8                                                                         
.text:006044D0  BADSTACK mov     eax, 1000h                                                                     
.text:00616380  BADSTACK push    ebp                                                                           
.text:0061A430  BADSTACK mov     eax, 2000h                                                                     
.text:0061F1F0  BADSTACK mov     eax, 14B0h                                                                     
.text:00621C60  BADSTACK mov     eax, 1040h                                                                     
.text:00627560  BADSTACK sub     esp, 8                                                                         
.text:0062BA80  BADSTACK mov     eax, 5544h                                                                     
.text:0062BDC0  BADSTACK mov     eax, 1810h                                                                     
.text:0062BFC0  BADSTACK mov     eax, 1B34h                                                                     
.text:00630DB0  BADSTACK mov     eax, 1114h                                                                     
.text:006321F0  BADSTACK mov     eax, 4000h                                                                     
.text:00633300  BADSTACK mov     eax, 2048h                                                                     
.text:00638930  BADSTACK mov     eax, 2004h                                                                     
.text:0063C210  BADSTACK mov     eax, 4014h                                                                     
.text:0063C880  BADSTACK mov     eax, 3010h                                                                     
.text:0063CA60  BADSTACK mov     eax, 3020h                                                                     
.text:0063CC40  BADSTACK mov     eax, 100Ch                                                                     
.text:0063CD60  BADSTACK mov     eax, 5020h                                                                     
.text:0063D170  BADSTACK mov     eax, 1000h                                                                     
.text:00658230  BADSTACK mov     eax, 181Ch                                                                     
.text:00659820  BADSTACK mov     eax, 3A98h                                                                     
.text:00659B40  BADSTACK mov     eax, 0B0CCh                                                                   
.text:00659CD0  BADSTACK mov     eax, 2074h                                                                     
.text:0065EEF0  BADSTACK push    ebx                                                                           
.text:00660C70  BADSTACK mov     eax, 206Ch                                                                     
.text:0066666F  BADSTACK enter   0FFFFC1DEh, 0D9h                                                               
.text:00666890  BADSTACK sub     esp, 1Ch                                                                       
.text:00670C40  BADSTACK mov     eax, 2008h                                                                     
.text:00675827  BADSTACK push    ebp                                                                           
.text:00678E10  BADSTACK push    ebp                                                                           
.text:00678EAA  BADSTACK pop     eax                                                                           
.text:0067B4C9  BADSTACK sub     esp, 8                                                                         
.text:0067B58E  BADSTACK pextrw  eax, xmm0, 3                                                                   
.text:0067D310  BADSTACK push    offset sub_67D370                                                             
.text:0067D52E  BADSTACK pextrw  eax, xmm0, 3                                                                   
.text:0067D71C  BADSTACK fabs                                                                                   
.text:0067D853  BADSTACK and     byte ptr [ebp-2C8h], 0FEh                                                     
.text:0067FA1E  BADSTACK pextrw  eax, xmm0, 3                                                                   
.text:00681F4E  BADSTACK fld     st                                                                             
.text:00683227  BADSTACK push    20h                                                                           
.text:006833AA  BADSTACK push    ebx                                                                           
.text:00683788  BADSTACK push    ebp                                                                           
.text:00688625  BADSTACK push    0Ch                                                                           
.text:00688F97  BADSTACK push    8                                                                             
.text:0068AD44  BADSTACK fdiv    st, st                                                                         
.text:0068AD4F  BADSTACK fdivr   st, st                                                                         
.text:0068AD5A  BADSTACK fdiv    st, st                                                                         
.text:0068AD60  BADSTACK fdivp   st, st                                                                         
.text:0068AD66  BADSTACK fdivr   st, st                                                                         
.text:0068AD6C  BADSTACK fdivrp  st, st                                                                         
.text:0068AD72  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068AD93  BADSTACK fstp    tbyte ptr [esp+0]                                                             
.text:0068ADAE  BADSTACK fxch    st(1)                                                                         
.text:0068ADCA  BADSTACK fstp    tbyte ptr [esp+0]                                                             
.text:0068ADDA  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068ADEE  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068ADFE  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068AE23  BADSTACK fstp    tbyte ptr [esp+0]                                                             
.text:0068AE42  BADSTACK fxch    st(2)                                                                         
.text:0068AE62  BADSTACK fstp    tbyte ptr [esp+0]                                                             
.text:0068AE76  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068AE8E  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068AEA2  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068AEC7  BADSTACK fstp    tbyte ptr [esp+0]                                                             
.text:0068AEE6  BADSTACK fxch    st(3)                                                                         
.text:0068AF06  BADSTACK fstp    tbyte ptr [esp+0]                                                             
.text:0068AF1A  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068AF32  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068AF46  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068AF6B  BADSTACK fstp    tbyte ptr [esp+0]                                                             
.text:0068AF8A  BADSTACK fxch    st(4)                                                                         
.text:0068AFAA  BADSTACK fstp    tbyte ptr [esp+0]                                                             
.text:0068AFBE  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068AFD6  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068AFEA  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068B00F  BADSTACK fstp    tbyte ptr [esp+0]                                                             
.text:0068B02E  BADSTACK fxch    st(5)                                                                         
.text:0068B04E  BADSTACK fstp    tbyte ptr [esp+0]                                                             
.text:0068B062  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068B07A  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068B08E  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068B0B3  BADSTACK fstp    tbyte ptr [esp+0]                                                             
.text:0068B0D2  BADSTACK fxch    st(6)                                                                         
.text:0068B0F2  BADSTACK fstp    tbyte ptr [esp+0]                                                             
.text:0068B106  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068B11E  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068B132  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068B157  BADSTACK fstp    tbyte ptr [esp+0]                                                             
.text:0068B176  BADSTACK fxch    st(7)                                                                         
.text:0068B196  BADSTACK fstp    tbyte ptr [esp+0]                                                             
.text:0068B1AA  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068B1C2  BADSTACK fstp    [esp+arg_8]                                                                   
.text:0068CB4C  BADSTACK push    eax                                                                           
.text:0068CB7F  BADSTACK push    eax                                                                           
.text:0068EA01  BADSTACK push    44h                                                                           
.text:0068EA40  BADSTACK push    4                                                                             
.text:0068EA92  BADSTACK push    44h                                                                           


Attachments:
File comment: The error list.
Mw2BADSTACK-list.txt [26.05 KiB]
Downloaded 43 times
Top
 Profile  
 
 
 Post subject: Re: Mw2 BADSTACKS
PostPosted: 22 Mar 2010 15:40 

Joined: 13 Aug 2007 21:44
Posts: 4068
Location: http://aluigi.org
the BADSTACK tag used by IDA means only that the stack pointer at the end of the function differs or could differ than the initial one but obviously that is not much important moreover because a compiler doesn't make similar errors.
indeed in this specific case I don't see problems because that one seems only an "orphaned" piece of code or a piece of data.
so it's for sure not a problem.

and no, badstack problems don't cause buffer-overflows :)


Top
 Profile  
 
 Post subject: Re: Mw2 BADSTACKS
PostPosted: 23 Mar 2010 00:46 

Joined: 01 Sep 2009 23:44
Posts: 10
I said Stack overflows which are a different Vuln. But thank you for your input. I appreciate it.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 

All times are UTC [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for: