2010-11-28 43 views
0

J'essaye l'échantillon de code fourni au blog de Naveen au http://naveensrinivasan.com/2010/06/11/piracy-in-net-code-%e2%80%93-part-3-%e2%80%93-even-when-the-code-is-obfuscated/.
Lorsqu'il exécute la commande !u ($ip), il obtient un bon démontage, mais lorsque j'essaie de faire la même chose, il me semble qu'il a tapé un code non géré qui n'a pas pu être démonté.Ce que je fais mal à désassembler le code

0:000> !u ($ip) 
Unmanaged code 
77555e74 c3    ret 
77555e75 8da42400000000 lea  esp,[esp] 
77555e7c 8d642400  lea  esp,[esp] 
77555e80 8d542408  lea  edx,[esp+8] 
77555e84 cd2e   int  2Eh 
77555e86 c3    ret 
77555e87 90    nop 
77555e88 55    push ebp 
77555e89 8bec   mov  ebp,esp 
77555e8b 8da42430fdffff lea  esp,[esp-2D0h] 

Une idée de ce que je peux faire mal?

Répondre

0

Votre liste est un démontage complètement valide du code natif. Les parties « int 2eh » me disent qu'il est un code qui effectue des appels système:

http://www.codemachine.com/article_syscall.html

Cela signifie que le code est plus probable dans ntdll.dll, qui est la bibliothèque du système dont le travail c'est. Le pointeur d'instruction pointe vers "ret". Je suppose que l'instruction précédente était un "sysenter", et ce qui s'est réellement passé est que l'application vient juste de sortir (elle l'a fait en faisant un appel système). Lorsque l'application se termine, votre débogueur obtient le contrôle comme il le ferait quand un point d'arrêt frappe.

Veuillez regarder de plus près pour voir pourquoi votre point d'arrêt ne se déclenche pas avant la fermeture de l'application.

0

Essayer: .lines l + s

dans la fenêtre de commande. Assurez-vous également que vos symboles sont chargés. Vous pouvez utiliser la commande lm pour afficher les modules chargés.