[eresi-dev] 2 bugs in libasm

Julien Vanegue jv274 at cam.ac.uk
Mon Jul 30 22:33:04 UTC 2007


Hi there,

I noticed 2 bugs in libasm on the intel architecture.

Well, one is a bug, and one is something very confusing
that has to be changed. Everything fits in this dump:

$ ../../elfsh/elfsh32 -f /bin/ls -D text | grep -B 16 0806E349

 0x0806E311 [foff: 156433] .text + 156129   mov           
%esp,%ebp                                
 0x0806E313 [foff: 156435] .text + 156131    sub           
$00000014,%esp                           
 0x0806E316 [foff: 156438] .text + 156134    mov           
%esi,FFFFFFFC(%ebp)                   
 0x0806E319 [foff: 156441] .text + 156137     mov           
00000008(%ebp),%esi                   
 0x0806E31C [foff: 156444] .text + 156140    mov           
%ebx,FFFFFFF8(%ebp)           
 0x0806E31F [foff: 156447] .text + 156143     mov           <.data + 
1816>,               **          
 0x0806E324 [foff: 156452] .text + 156148     test          
%eax,%eax                              
 0x0806E326 [foff: 156454] .text + 156150     js            <_start + 
156326>                        
 0x0806E32C [foff: 156460] .text + 156156    mov           <.data + 
1812>,%edx       ***          
 0x0806E332 [foff: 156466] .text + 156162     test          
%edx,%edx                              
 0x0806E334 [foff: 156468] .text + 156164     je            <_start + 
156208>                     
 0x0806E336 [foff: 156470] .text + 156166     mov           
00000004(%ebp),%eax              
 0x0806E339 [foff: 156473] .text + 156169     mov           
%esi,00000004(%esp,1)           
 0x0806E33D [foff: 156477] .text + 156173     mov           
%eax,00000008(%esp,1)           
 0x0806E341 [foff: 156481] .text + 156177     mov           <.bss + 
5052>,                           
 0x0806E346 [foff: 156486] .text + 156182     mov           
%eax,(%esp,1)                        
 0x0806E349 [foff: 156489] .text + 156185     call          
%edx                    


The 2 problems are marked by ** and *** :

** : missing the destination register in the output

***: it should be *<.data + 1812> ! (forgotten the *)

I hope those problems can be fixed quickly

Julien Vanegue

            




More information about the eresi-dev mailing list