| ²é¿´: 733 | »Ø¸´: 6 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
sdlj8051½ð³æ (ÖøÃûдÊÖ)
|
[½»Á÷]
[zt]¶Ô¶à̬±äÐÎÒýÇæ±³ºó·½·¨µÄ¸ÅÊö
|
||
|
ÔÎÄ£º http://madchat.org/vxdevl/vdat/tumisc10.htm ¹Ø¼ü´Ê£º ¶à̬±äÐÎ SMEG ÒëÕß×¢£ºSMEG£¨Simulated Metamorphic Encryption Generator£©ÊÇÒ»¸öÓ°ÏìÆÄ´óµÄ¶à̬±äÐÎÒýÇæ£¬ËüʹÓõķ½·¨Êܵ½ÖÚÈ˵ķÂЧ¡£ËäÈ»±¾ÎÄûÓÐÏêϸ½éÉÜSMEGÖÐËùʹÓõĸ÷ÖÖ¼¼Êõ£¬µ«ÎÒÃÇÈÔ¿ÉÒÔ´ÓÖÐÒ»¿ú¶ËÄß¡£ ÎÒдÕâÆªÎÄÕµÄÄ¿µÄÊÇÏò´ó¼Ò½éÉܶà̬±äÐÎÒýÇæµÄ¹¤×÷ÔÀí¡£ÎÒ¼ÙÉèÄãÒѾÊìϤ8086»ã±àÆ÷ÒÔ¼°XOR£¬AND & ORµÈÂß¼ÔËËã¡£Òò´Ë£¬±¾ÎIJ»°üÀ¨Âß¼ÔËËã¼°»ã±àÆ÷µÄÄÚÈÝ£¡Ò²Çë´ó¼Ò×¢Ò⣬ËùÓеĻã±àÁÐ±í½«²»°üÀ¨ÓëSEGMENTÓйصÄÄÚÈÝ£¬¶øÊǼÙÉèÄãÖªµÀÔÚÓÃÄĸö¶Î¡£±¾ÎĽéÉܵķ½·¨ÊÇÎÒÔÚSMEG£¨Simulated Metamorphic Encryption Generator£©¶à̬±äÐÎÒýÇæÖÐʹÓõ쬵«Õâ²¢²»Òâζ×ÅËüÊÇΨһµÄ£¡ ÎÄÖÐÓõ½µÄÊõÓ ¨D¨D¨D¨D¨D¨D¨D ENCRYPT =°ÑÔÀ´µÄÐÎ̬ת»»³ÉÁíÒ»ÖÖÐÎ̬¡£ DECRYPT =°Ñת»»ºóµÄÐÎ̬»¹Ô³ÉÔÀ´µÄÐÎ̬¡£ KEY =ÓÃÓÚ¼ÓÃÜ£¯½âÃܵļĴæÆ÷»òÖµ¡£ SLIDING KEY =Ëæ×ÅÑ»·µÝÔö»òµÝ¼õµÄKEYÖµ¡£ COUNT =±»¼ÓÃÜ´úµÄÂë»òÊý¾ÝµÄ×Ö½ÚÊý¡£ INDEX =Ö¸Ïò±»¼ÓÃܵĴúÂë»òÊý¾ÝµÄÖ¸Õë¡£ SIGNATURE =ËüÊÇÒ»×éΨһµÄ×Ö½ÚÐòÁУ¬ÓÃÓÚ¼ì²é³ÌÐòµÄÄÚÈÝ£¬Ï£Íû½å´Ë¼ì²âÌØÊâµÄ³ÌÐò¡£ HEURISTIC =Ó¦ÓÃÓÚÎÊÌâµÄÒ»×鶨ÒåÁ¼ºÃµÄ¹æÔò£¬Ï£Íû½å´ËµÃµ½ÒÑÖª½á¹û¡£ ÎÊÌ⣺ʲôÊǶà̬±äÐΣ¿ ¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D£ »Ø´ð£ºàÅ£¬ÀÊÂüÓ¢Óï´ÊµäÊÇÕâÑù¶¨ÒåµÄ£º ¡°¶àÐÎÒ²Ö¸¶à̬adj fml or tech. ÒÔ¸÷ÖÖ²»Í¬µÄÐÎ̬´æÔÚ¡£¡± »»¾ä»°Ëµ£¬Ò²¾ÍÊÇÓÐÄÜÁ¦¸Ä±ä×ÔÉíÐÎ̬µÄ¶«Î÷¡£¶ÔËüµÄÃèÊö»¹ÓУºMutable, Metamorphic, Etc... ÎÊÌ⣺ʲôÊǶà̬±äÐÎÒýÇæ£¿ ¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D »Ø´ð£º¿ÉÒÔ¼ÓÃÜ£¨»ò²óºÍ£©ÆäËü³ÌÐò»òÊý¾ÝµÄ³ÌÐò£¬²¢ÎªËüÃÇÌṩΨһµÄÒëÂëÆ÷£¬Ëü±ØÐëÕâÑù×ö£º²»ÔÊÐíͬһ³ÌÐò»òÊý¾ÝµÄ¼ÓÃܺóÊÇÀàËÆµÄ¡£ Àý×Ó£º¿´ÏÂÃæÕâ¸ö·Ç³£¼òµ¥µÄÒëÂëÆ÷£º MOV SI,jumbled_data ;Point to the jumbled data MOV CX,10 ;Ten bytes to decrypt main_loop: XOR BYTE PTR [SI],55 ;XOR (un_scramble!) a byte INC SI ;Next byte LOOP main_loop ;Loop for the 9 remaining bytes Õâ¸öС³ÌÐò°Ñ55ºÍSIËùÖ¸µÄ10¸ö×Ö½Ú×öXORÔËËã¡£ÌÈÈôÕâ10¸ö×Ö½ÚÔÚÔËÐÐÒëÂëÆ÷ǰÒѺÍ55 XOR¹ýÁË£¬ÄÇôÕâ10×Ö½Ú½«»Ö¸´ÔÑù¡£Èç¹ûÄ㲻ȷ¶¨ÎªÊ²Ã´»áÕâÑù£¬ÇëÎÂϰXORÂß¼ÔËË㣡£¡ OK£¬Äã¿ÉÄÜ»áÕâÑù˵£¬Èç¹ûÿ´ÎÉú³Éʱ¶¼¸Ä±äKEYÖµ£¬¾ÍÊǶà̬±äÐÎÁË£¿àÅ£¬¼ÈÊÇÓÖ²»ÊÇ£¡Èç¹ûÕâÑù×ö£¬±»¼ÓÃܵIJ¿·ÖÊǶà̬±äÐε쬵«ÒëÂëÆ÷»ù±¾Éϱ£³Ö×Ų»±ä£¬Ö»ÓÐKEYÖµ¸Ä±äÁË£¡Òò´Ë£¬Ö§³ÖͨÅä·ûµÄÌØÕ÷ɨÃèÆ÷£¨´ó²¿·ÖµÄɨÃèÆ÷¶¼¿ÉÒÔ£©ÈÔÄÜ·¢ÏÖÄãµÄÒëÂëÆ÷£¡ Äã¿ÉÒÔ»¥»»Ò»Ð©Ö¸ÁîÀ´ÆÛÆÌØÕ÷ɨÃèÆ÷¡£°ÑÕâÑùµÄÏë·¨¸¶ÖîʵÏÖ£¬ÉÏÃæµÄÒëÂëÆ÷¿´ÆðÀ´ÏñÏÂÃæÕâÑù£º MOV CX,10 MOV SI,jumbled_data main_loop: XOR BYTE PTR [SI],55 INC SI LOOP main_loop ÏñÄã¿´µ½µÄ£¬ÕâÑùµÄ¸Ä±äÈÔ²»¹»ÀíÏë¡£²»×ãÒÔÆÛÆÄ³Ð©½ÏºÃµÄÌØÕ÷ɨÃèÆ÷¡£ ¡°Çë¼òÒªÒ»µã£¡Ê²Ã´²ÅÊÇÕæÕýµÄ¶à̬±äÐΣ¿¡±£¬ÎÒÌýµ½Äã¿ìҪץ¿ñÁË£¡ ¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D àÅ£¬¡°ÕæÕýµÄ¡±¶à̬±äÐξÍÊÇÿ´ÎµÄÒëÂëÆ÷¿´ÆðÀ´ÍêÈ«²»Ò»Ñù£¡¿´ÏÂÃæµÄÒëÂëÆ÷£º MOV CX,10 NOP NOP MOV SI,jumbled_data NOP main_loop: NOP NOP XOR BYTE PTR [SI],55 NOP INC SI NOP NOP NOP NOP LOOP main_loop Õâ¸öÒëÂëÆ÷ºÍÇ°ÃæÄǸöÔÚ¹¦ÄÜÉÏÊÇÒ»ÑùµÄ£¬Ö»²»¹ýËüÉíÉÏÈöÁËÒ»Ð©Ëæ»úµÄNOPÖ¸Áî¡£ÔÚÿ´ÎÉú³ÉÖ¸Áîºó²åÈ벻ͬÊýÁ¿µÄNOP¡£ÕâÊÇ×î¼òªµÄ¶à̬±äÐÎÐÎʽ¡£Òò´Ë£¬¾ø´ó¶àÊýºÃµÄÌØÕ÷ɨÃèÆ÷ÈÔÄܼì²âµ½ÕâÑù¼òµ¥µÄ¶à̬±äÐΡ£ËüÃÇÖ»ÓÃÌø¹ýNOP£¬¾Í¿ÉÒÔÇåÎúµØ¿´³öÒëÂëÆ÷£¬È»ºó£¬¾Í¿ÉÒÔÓ¦ÓÃÌØÕ÷½øÐмì²âÁË£¡ ²»£¬¡°ÕæÕýµÄ¡±¶à̬±äÐαÈÕâÒª¸´ÔÓ¶àÁË£¡ËüÔÚÒëÂëÆ÷ÉÏËæ»úÈö²»Í¬ÊýÁ¿µÄÍêÈ«Ëæ»úµÄ8086Ö¸Á°üÀ¨JUMPºÍCALL£©£¬¶ø²»ÊÇÈöһЩNOPÁË¡£ËüÒ²¿ÉÒÔʹÓò»Í¬µÄÖ÷ÒëÂëÆ÷£¨Ò²¿ÉÄÜ´ÓÔ¤±àÂëºÃµÄÒëÂëÆ÷ÖÐÑ¡ÔñÒ»¸ö£©£¬²¢¸Ä±äÒëÂëÆ÷ÿ´ÎÉú³ÉʱʹÓõļĴæÆ÷£¬È·±£Éú³ÉµÄÎÞÓôúÂë²»»áÆÆ»µÒëÂëÆ÷ËùʹÓõÄÈκμĴæÆ÷£¡ËùÒÔ£¬Ó¦ÓÃÕâЩ¹æÔòºó£¬ÎÒÃǵÄÒëÂëÆ÷¿´ÆðÀ´ÏñÏÂÃæÕâÑù£º MOV DX,10 ;Real part of the decryptor! MOV SI,1234 ;junk AND AX,[SI+1234] ;junk CLD ;junk MOV DI,jumbled_data ;Real part of the decryptor! TEST [SI+1234],BL ;junk OR AL,CL ;junk main_loop: ADD SI,SI ;junk instruction, real loop! XOR AX,1234 ;junk XOR BYTE PTR [DI],55 ;Real part of the decryptor! SUB SI,123 ;junk INC DI ;Real part of the decryptor! TEST DX,1234 ;junk AND AL,[BP+1234] ;junk DEC DX ;Real part of the decryptor! NOP ;junk XOR AX,DX ;junk SBB AX,[SI+1234] ;junk AND DX,DX ;Real part of the decryptor! JNZ main_loop ;Real part of the decryptor! ÏñÄã¿´µ½µÄ£¬ÏñÒ»¹ø´óÔӻ⣡£¡µ«ÊÇ£¬ËüÃÇÈÔ¿ÉÖ´ÐС£ÒòΪÓɶà̬±äÐÎÒýÇæÉú³ÉµÄÎÞÓôúÂëÖ±½ÓÈöÔÚÒëÂëÆ÷ÉÏ£¬ËùÒÔËüÃDZØÐëÊÇ¿ÉÖ´Ðе썷ñÔò½«µ¼Ö³ÌÐòÒì³££©¡£×¢Ò⣬ÔÚÕâ¸öÀý×ÓÀÎÒÃÇÔÚÒëÂëÆ÷ÖÐÒ²ÓÃÁËһЩÎÞÓÃÖ¸ÁîËùÓõļĴæÆ÷£¡ÌÈÈôÕâЩ¼Ä´æÆ÷ÖеÄֵû±»ÆÆ»µ£¬¾Í¸üºÃÁË¡£Í¬Ê±»¹Òª×¢Ò⣬ÎÒÃÇÏÖÔÚÿ´ÎÉú³ÉµÄ½á¹û°üÀ¨Ëæ»ú¼Ä´æÆ÷ºÍËæ»úÖ¸ÁÕâÊ¹ÌØÕ÷ɨÃ裨ÉõÖÁ¶ÔÄÇЩ´ÏÃ÷µÄÌØÕ÷ɨÃèÆ÷Ò²ÊÇÈç´Ë£©±äµÃ²»Ì«ÖÐÓã¡Ïà·´£¬±ØÐëʹÓÃHEURISTIC·½·¨²ÅÐУ¬¶øÕâÓÖ¿ÉÄܵ¼ÖÂÎ󱨡£ Òò´Ë£¬¶à̬±äÐÎÒýÇæ¿É·Ö³É3¸öÖ÷Òª²¿·Ö£º ¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D£ 1 ..Ëæ»úÊýÉú³ÉÆ÷¡£ 2 ..ÎÞÓôúÂëÉú³ÉÆ÷¡£ 3 ..ÒëÂëÆ÷Éú³ÉÆ÷¡£ µ±È»£¬»¹ÓÐһЩÆäËü²¿·Ö£¬µ«Õâ3¸öÊÇ×îÖ÷ÒªµÄ£¡ ËüÔõô¹¤×÷ÄØ£¿àÅ£¬SMEGÓÃÏÂÃæµÄ·½·¨Éú³ÉËæ»úÒëÂëÆ÷£º 1 ..Ëæ»úÑ¡ÔñÓÃÓÚÒëÂëÆ÷µÄ¼Ä´æÆ÷¡£°ÑʣϵļĴæÆ÷Áô¸øÎÞÓôúÂëÉú³ÉÆ÷¡£ 2 ..Ñ¡ÔñÒ»¸öѹËõµÄÔ¤±àÂëµÄÒëÂëÆ÷¡£ 3 ..½øÈëÉú³ÉÕæÕýÒëÂëÆ÷µÄÑ»·£¬²¢ÈöÉÏÎÞÓôúÂë¡£ ΪÁËÀí½â±»Ñ¡ÔñµÄ¼Ä´æÆ÷ÔõÑùÖÃÈëÒëÂëÆ÷ºÍÎÞÓôúÂ룬Äã±ØÐëÕ¾ÔÚ¶þ½øÖƲãÀ´²é¿´8086Ö¸Á XOR AX,AX = 00110001 11000000 XOR AX,CX = 00110001 11001000 XOR AX,DX = 00110001 11010000 XOR AX,BX = 00110001 11011000 ÄãÄÜ¿´³öÕâ4Ìõ8086Ö¸ÁîµÄ¶þ½øÖÆ´úÂëµÄģʽÂð£¿àÅ£¬ËùÓеÄ8086Ö¸Áî¶¼×ñÑÒ»¶¨µÄÂ߼ģʽ£¬ÕâЩģʽ¸æËß8086´¦ÀíÆ÷Åöµ½¾ßÌåµÄÖ¸ÁîÓ¦¸ÃʹÓÃÄÄÖּĴæÆ÷£¯Ñ°Ö··½Ê½¡£È«²¿µÄÖ¸Áî¸ñʽºÍÓëģʽÓйصľ«È·Â߼ʵÔÚÌ«¸´ÔÓÁË£¬Ã»°ì·¨ÔÚÕâÀïÒ»Ò»½éÉÜ¡£ÐÒºÃÓÅÐãµÄ8086½Ìѧ£¯²Î¿¼Ö¸µ¼¶¼»áÏêϸ½éÉÜÕâЩÄÚÈÝ¡£ µ±ÕâЩģʽֱ½ÓÉæ¼°µ½¼Ä´æÆ÷ʱ£¬SMEGÀûÓÃÕâÖÖģʽÂß¼ÓÃËæ»ú¼Ä´æÆ÷Éú³ÉÎÞÓôúÂëºÍÒëÂëÆ÷¡£ SMEGÓÃÏÂÃæµÄ·½·¨Éú³ÉÎÞÓôúÂ룺 ¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D ¾Í8086Ö¸ÁÀ´Ëµ£¬ÔÚSMEGÄÚ²¿ÓÐÒ»¸ö»ù±¾µÄ¶þ½øÖÆÄ£Ê½±í£¬µ«ÓÐÒ»¸öÖØÒªµÄ²îÒ죬ËùÓеļĴæÆ÷£¯µØÖ··½Ê½Î»ÊÇ0¡£Õâ±»³ÆÎªSKELETON INSTRUCTION TABLE¡£Õâ¸ö±íÒ²°üº¬SMEGΪȷ¶¨Ïà¹ØÎ»Î»ÖÃÀ´¡°²åÈ롱¼Ä´æÆ÷λģʽËùÓÃµÄÆäËü×Ö½Ú¡£Í¨¹ýÂß¼ÔËËãORºÍAND²åÈëÕâЩģʽ¡£ÓÃÕâ¸ö·½·¨£¬SMEG¿ÉÒÔÉú³ÉÎÞÇî¶àµÄËæ»ú8086Ö¸Á¶ø²»»áÆÆ»µÒëÂëÆ÷ËùÓõļĴæÆ÷¡£SMEGΪÁËÉú³ÉÐé¼ÙµÄ¶Ô¿ÕÀý³ÌµÄCALL£¬ÒÔ¼°µ½ÎÞÓôúÂëÖÜΧµÄÐé¼ÙÌõ¼þ×ªÒÆ£¬Ò²»á°üº¬Ò»Ð©ÀëÉ¢Âß¼¡£ SMEGÓÃÏÂÃæµÄ·½·¨Éú³ÉÒëÂëÆ÷£º ¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D ÔÚSMEGÄÚ£¬ÓÐÒ»¸ö±í°üº¬ÁËÒëÂëÆ÷ÖÐËùÓõÄͨÓÃ8086Ö¸ÁîÑ¡¼¯£¬ÀýÈçXOR [index],reg£¬µÈµÈ¡£´ËÍ⣬ËüÃǺÍÒëÂëÆ÷Éú³ÉÆ÷ËùʹÓõÄһЩ¿ØÖÆ×Ö½Ú±£´æÔÚSKELETON½á¹¹ÀͬÑù£¬ÔÚSMEGÄÚ£¬ÓÐһЩԤ±àÂëµÄÒëÂëÆ÷±£´æÔÚѹËõµÄ½á¹¹Àƽ¾ùÆðÀ´£¬Ò»¸öÍêÕûµÄÒëÂëÆ÷¿ÉÒÔ±»ÃèÊöΪֻÓÐ11×Ö½ÚµÄÒëÂëÆ÷Éú³ÉÆ÷£¬¼Óµ½Ô¤±àÂëÒëÂëÆ÷Áбí¼È²»Âé·³ÓÖ½ÚÊ¡¿Õ¼ä£¡ SMEGÓÃÏÂÃæµÄ·½·¨Éú³É¶à̬±äÐÎÒëÂëÆ÷£º ¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D Ê×ÏÈ£¬ËüËæÒâÑ¡ÔñÒ»¸öÔ¤±àÂëµÄѹËõµÄÒëÂëÆ÷¡£½ÓÏÂÀ´£¬Ëü½øÈëÒ»¸öÑ»·£¬½âѹËõÿÌõÒëÂëÆ÷Ö¸Á²åÈëËùÐèµÄ¼Ä´æÆ÷£¬±£´æËüÈ»ºóÉú³É£¨¶ÔÿһÌõÕæÕýµÄÖ¸ÁîÀ´Ëµ£©Ëæ»úÊýÁ¿µÄËæ»úÖ¸Áî¡£Õâ¸öÑ»·Ò»Ö±Öظ´µ½Õû¸öÒëÂëÆ÷±»¹¹½¨Íê³É¡£×îÖյĽá¹ûÊÇÉú³ÉËæ»ú´óС¡¢Ëæ»ú¼Ä´æÆ÷¡¢Ëæ»ú×é³ÉµÄÒëÂëÆ÷£¡ ͬÑùҪעÒ⣬ֻҪSMEGÉú³ÉË÷ÒýÖ¸ÁËü¾Í»áËæÒâʹÓÃSI£¬DI»òBX£¬ÓÐʱºòÒ²»áÓÃËæ»úÆ«ÒÆÁ¿¡£ÀýÈ磬¼ÙÉè±»¼ÓÃܵĴúÂë´ÓµØÖ·10h¿ªÊ¼£¬¿ÉÒÔÓÃÏÂÃæµÄÖ¸ÁîË÷ÒýÕâ¸öµØÖ·£º MOV SI,10h ;Start address MOV AL,[SI] ;Index from initial address µ«SMEGÓÐЩʱºò½«Éú³ÉÀàËÆÓÚÏÂÃæµÄ¶«Î÷£¬ÔٴλùÓÚ´ÓµØÖ·10h¿ªÊ¼µÄ±»¼ÓÃܵĴúÂ룺 MOV DI,0BFAAh ;Indirect start address MOV AL,[DI+4066h) ;4066h + 0BFAAh = 10010h (and FFFF = 10h)!! ÍêÈ«Ëæ»úÌôÑ¡ÕâЩË÷ÒýÖµºÍ³õʼֵ£¬0BFAAhºÍ4066hµÄÀý×ÓÊÇÓÐЧµÄ£¬µ«Ï´ÎËüÃǽ«ÍêÈ«²»Ò»Ñù£¡ [ Last edited by sdlj8051 on 2007-2-10 at 10:36 ] |
» ²ÂÄãϲ»¶
276Çóµ÷¼Á¡£ÓаëÄêµç³ØºÍ°ëÄê¸ß·Ö×Óʵϰ¾Àú
ÒѾÓÐ10È˻ظ´
Ò»Ö¾Ô¸ÄϺ½²ÄÁÏר317·ÖÇóµ÷¼Á
ÒѾÓÐ4È˻ظ´
Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
ÉúÎïѧѧ˶Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´
284Çóµ÷¼Á
ÒѾÓÐ10È˻ظ´
һ־Ըɽ¶«´óѧҩѧѧ˶Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
07»¯Ñ§280·ÖÇóµ÷¼Á
ÒѾÓÐ4È˻ظ´
298-Ò»Ö¾Ô¸Öйúũҵ´óѧ-Çóµ÷¼Á
ÒѾÓÐ12È˻ظ´
Çó²ÄÁÏ£¬»·¾³×¨Òµµ÷¼Á
ÒѾÓÐ3È˻ظ´
335Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´
sdlj8051
½ð³æ (ÖøÃûдÊÖ)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 0.1
- ½ð±Ò: 1149.8
- ºì»¨: 3
- Ìû×Ó: 2254
- ÔÚÏß: 18.1Сʱ
- ³æºÅ: 71297
- ×¢²á: 2005-05-30
- רҵ: µç·Óëϵͳ
|
ÏÂÃæÁ½¸öÊÇÎÒµÄSMEG¶à̬±äÐÎÒýÇæÉú³ÉµÄÒëÂëÆ÷¡£Ó¦¸Ã×¢Òâµ½ÎÒÉú³ÉµÄ½ü4000¸öÀý×ÓÖÐûÓÐÁ½¸öÊÇÏàËÆµÄ£¡²»ÐÒµÄÊÇ£¬ÎÒûÓÐÈç´Ë¶àµÄÓ²Å̿ռ䣡µ«±£ÊصÄ˵£¬ÒëÂëÆ÷×éºÏµÄ×ÜÊý¿ÉÄÜ»áÉÏÊ®ÒÚ£¡ ÏÂÃæÁбíÖÐËùÓбêÓÐ";junk"µÄÐÐָʾËüÃÇÊDzåÈëÒëÂëÆ÷µÄËæ»úÎÞÓÃÖ¸ÁעÒ⣬SMEG¿ÉÒÔÉú³É¶ÔÐé¼ÙÀý³ÌµÄÎÞÓÃCALL£¬ÒÔ¼°³£¼ûµÄÎÞÓÃÌõ¼þ×ªÒÆ£¡ËùÓбêÓÐ*µÄÐÐָʾËüÃÇÊÇÒëÂëÆ÷µÄÕæÕý²¿·Ö¡£ÎÒÑ¡ÔñչʾÁ½¸öÒëÂëÆ÷£¬Ö÷ÒªÒòΪËüÃǵĴóСÀàËÆ£¬386ºÍ480¸ö×Ö½Ú¡£SMEGÉú³ÉµÄÒëÂëÆ÷µÄ´óС´Ó½ÏСµÄ288µ½½Ï´óµÄ1536×Ö½Ú²»µÈ¡£¼´Ê¹Éú³ÉµÄÁ½¸öÒëÂëÆ÷´óСÏàµÈ£¬µ«ËüÃÇÏàͬµÄ¸ÅÂʼ¸ºõΪʮÒÚ·ÖÖ®Ò»£¡ |
2Â¥2006-08-23 12:19:58
sdlj8051
½ð³æ (ÖøÃûдÊÖ)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 0.1
- ½ð±Ò: 1149.8
- ºì»¨: 3
- Ìû×Ó: 2254
- ÔÚÏß: 18.1Сʱ
- ³æºÅ: 71297
- ×¢²á: 2005-05-30
- רҵ: µç·Óëϵͳ
|
;ÒëÂëÆ÷µÄ»ã±àÁÐ±í£¬´óСΪ368¸ö×Ö½Ú¡£ ;¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D ;±»¼ÓÃÜ´úÂëµÄ´óСÊÇ07DBh (2011 ×Ö½Ú) ;±»¼ÓÃܵĴúÂë´ÓµØÖ·0270h¿ªÊ¼ ;ÓÃÏÂÃæµÄ¼Ä´æÆ÷Éú³ÉÒëÂëÆ÷£º ; ; DX =ÓÃÓÚ¼ÆÊý±»¼ÓÃÜ´úÂëµÄ×Ö½Ú ; BX =Ö¸Ïò±»¼ÓÃÜ´úÂëµÄË÷Òý ; AL =¼ÓÃÜKey ; CL =ͨÓù¤×÷¼Ä´æÆ÷ 0100 JNS 0103 ;junk 0102 CLD ;junk 0103 SAR SI,CL ;junk 0105 CMP BP,0708 ;junk 0109 STC ;junk 010A JG 010E ;junk 010C OR SI,CX ;junk 010E XOR DI,3221 ;junk 0112 ADD BP,0805 ;junk 0116 AND BP,3512 ;junk 011A SHR SI,CL ;junk 011C MOV SI,1B04 ;junk 0120 SAR DI,CL ;junk 0122 ADC SI,2506 ;junk 0126 ADC DI,1F11 ;junk 012A SBB BP,[0F3E] ;junk 012E CMP BP,3F1E ;junk 0132 DEC SI ;junk 0133 NOT DI ;junk 0135 AND SI,083D ;junk 0139 INC SI ;junk 013A SBB DI,0103 ;junk 013E MOV DX,1791 ;* Set up the COUNT register ; 3x Actual number of bytes! 0141 CLD ;junk 0142 JB 0146 ;junk 0144 TEST SI,AX ;junk 0146 SBB DI,SP ;junk 0148 TEST DI,[251B] ;junk 014C TEST CL,[SI] ;junk 014E SHL BP,1 ;junk 0150 MOV BX,017D ;junk 0153 CMC ;junk 0154 MOV DI,1218 ;junk 0158 JO 015C ;junk 015A RCR DI,1 ;junk 015C STC ;junk 015D CMP BP,DI ;junk 015F MOV AX,CS ;* Get CODE SEG in AX 0161 TEST CH,[BX+17] ;junk 0164 SBB BP,3107 ;junk 0168 INC DI ;junk 0169 RCR BP,1 ;junk 016B MOV DS,AX ;* Make DATA SEG = CODE SEG 016D ADD DI,[3B04] ;junk 0171 MOV AL,50 ;* Set up decrypt KEY reg 0173 JNB 0179 ;junk 0175 MOV SI,1439 ;junk 0179 JB 017D ;junk 017B ADC DI,AX ;junk 017D JMP 0185 ;junk 0180 MOV BP,1B36 ;junk 0184 RET ;junk 0185 RCR SI,1 ;junk 0187 MOV BX,842D ;* Set up the INDEX register 018A SUB SI,CX ;junk * Decryptor MAIN LOOP 018C OR DI,0B0F ;junk 0190 MOV BP,1E3E ;junk 0194 RCL DI,CL ;junk 0196 SUB BP,2E12 ;junk 019A ADD DI,[2E2A] ;junk 019E ROL SI,CL ;junk 01A0 MOV CL,[BX+7E43] ;* Get next encrypted byte ; NOTE: original index 842Dh plus 7E43h = ; 10270h AND FFFFh = 0270h! Which is the ; start of the Encrypted code! 01A4 JZ 01AC ;junk 01A6 TEST BH,[DI+2B3B] ;junk 01AA CMP [BP+SI],DL ;junk 01AC ROL DI,1 ;junk 01AE SBB DI,263A ;junk 01B2 DEC DX ;* Dec the COUNT register (x1) 01B3 CALL 0180 ;junk 01B6 MOV DI,CX ;junk 01B8 ADC BP,282E ;junk 01BC SUB CL,AL ;* Decrypt byte using KEY reg 01BE MOV SI,372A ;junk 01C2 TEST BP,3A10 ;junk 01C6 CALL 0180 ;junk 01C9 ADC SI,1317 ;junk 01CD CLD ;junk 01CE INC AX ;* Increase the KEY reg 01CF XOR SI,203D ;junk 01D3 JMP 01E1 ;junk 01D6 DEC DI ;junk 01D7 CMC ;junk 01D8 SUB BP,[3624] ;junk 01DC XOR SI,0200 ;junk 01E0 RET ;junk 01E1 CMP [SI+13],BH ;junk 01E4 SUB DX,0001 ;* Dec the COUNT register (x2) 01E8 CMP AX,0517 ;junk 01EC SUB BP,2816 ;junk 01F0 AND SI,0807 ;junk 01F4 SUB SI,2E03 ;junk 01F8 ROR BP,1 ;junk 01FA INC DI ;junk 01FB RCR SI,CL ;junk 01FD TEST CH,DH ;junk 01FF SUB BP,1026 ;junk 0203 MOV [BX+7E43],CL ;* Store the decrypted byte 0207 JNB 020D ;junk 0209 XOR DI,1B30 ;junk 020D CLD ;junk 020E ADD SI,3C38 ;junk 0212 INC BX ;* Increase the INDEX reg 0213 XOR DI,0B2C ;junk 0217 JMP 022F ;junk 021A OR BP,1C18 ;junk 021E JLE 0221 ;junk 0220 DEC BP ;junk 0221 ADC SI,0E32 ;junk 0225 AND DI,1522 ;junk 0229 CMP [BP+SI+36],BH ;junk 022C ROL SI,1 ;junk 022E RET ;junk 022F SHL DI,1 ;junk 0231 SHR DI,1 ;junk 0233 DEC DX ;* Dec the COUNT register (x3) ; Hence the 3x original size! 0234 JNZ 023F ;* Not zero then jump to 023Fh 0236 TEST CL,[BP+DI] ;junk 0238 ADC BP,012D ;junk 023C JMP 025B ;* Finished decrypting! 023F INC BP ;junk 0240 JNB 0246 ;junk 0242 CMP BX,0E2E ;junk 0246 TEST DI,SI ;junk 0248 SBB SI,3233 ;junk 024C MOV CX,018A ;* Set address of MAIN LOOP 024F ROL DI,1 ;junk 0251 SUB DI,BX ;junk 0253 SHR DI,1 ;junk 0255 TEST BL,[BX+DI+1C2E] ;junk 0259 PUSH CX ;* Stack LOOP address 025A RET ;* RETurn to MAIN LOOP 025B MOV SI,211F ;junk 025F CMP BL,[BX+DI] ;junk 0261 SUB BP,2D33 ;junk 0265 MOV BP,3735 ;junk 0269 XOR SI,SI ;junk 026B MOV BP,[0A38] ;junk 026F INC DI ;junk 0270 The encrypted code starts here. ;****************** ÒëÂëÆ÷1µÄ»ã±àÁÐ±íµ½´Ë½áÊø ******************* ;¼ÓÃÜÆ÷2µÄ»ã±àÁÐ±í£¬´óСΪ480¸ö×Ö½Ú¡£ ;¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D£ ;±»¼ÓÃÜ´úÂëµÄ´óСÊÇ07DBh (2011 ×Ö½Ú) ;±»¼ÓÃܵĴúÂë´ÓµØÖ·02E0h¿ªÊ¼ ;ÓÃÏÂÃæµÄ¼Ä´æÆ÷Éú³ÉÒëÂëÆ÷£º ; ; AX = Count of bytes in the encrypted code ; BX = Index pointing to the encrypted code ; DL = The encryption key ; CL = General work register 0100 NOT SI ;junk 0102 TEST CH,[BP+DI+0F] ;junk 0105 INC DI ;junk 0106 CLD ;junk 0107 ADC DI,132A ;junk 010B JPE 0111 ;junk 010D OR DI,332E ;junk 0111 INC SI ;junk 0112 TEST AL,CH ;junk 0114 JMP 0120 ;junk 0117 JPE 011D ;junk 0119 CMP DX,1909 ;junk 011D RCR DI,CL ;junk 011F RET ;junk 0120 INC DI ;junk 0121 TEST DI,BP ;junk 0123 JMP 0133 ;junk 0126 TEST DI,0E24 ;junk 012A TEST DI,093A ;junk 012E AND DI,SP ;junk 0130 CMP [BP+SI],BH ;junk 0132 RET ;junk 0133 MOV BP,0C28 ;junk 0137 TEST DH,CH ;junk 0139 TEST BP,1C16 ;junk 013D ROR BP,CL ;junk 013F JZ 0145 ;junk 0141 TEST DH,[BX] ;junk 0143 ADD DI,SP ;junk 0145 TEST CL,[SI+3435] ;junk 0149 MOV BP,2E08 ;junk 014D TEST CX,DI ;junk 014F CLD ;junk 0150 MOV SI,3831 ;junk 0154 AND BP,363E ;junk 0158 ROR DI,CL ;junk 015A CLC ;junk 015B JNS 0163 ;junk 015D SAR SI,1 ;junk 015F SBB DI,3308 ;junk 0163 SBB DI,362B ;junk 0167 MOV AX,07DB ;* Set up the COUNT register 016A AND DI,0F1E ;junk 016E JMP 0182 ;junk 0171 MOV DI,2F31 ;junk 0175 CMP CX,2212 ;junk 0179 SBB SI,2E14 ;junk 017D TEST BL,[SI+341D] ;junk 0181 RET ;junk 0182 CMP BH,19 ;junk 0185 MOV BX,B977 ;* Set up the INDEX register 0188 TEST AL,[DI+072C] ;junk 018C TEST DI,2306 ;junk 0190 SHR SI,1 ;junk 0192 MOV DX,CS ;* Get CODE SEG in DX 0194 CALL 0171 ;junk 0197 TEST SI,1410 ;junk 019B CLC ;junk 019C SHL DI,CL ;junk 019E MOV DS,DX ;* Make DATA SEG = CODE SEG 01A0 NEG SI ;junk 01A2 CALL 0171 ;junk 01A5 TEST CH,[BP+DI+070F] ;junk 01A9 MOV DL,8D ;* Set decrypt KEY register 01AB MOV DI,3A30 ;junk 01AF JMP 01B9 ;junk 01B2 JBE 01B5 ;junk 01B4 INC DI ;junk 01B5 NOT DI ;junk 01B7 CMC ;junk 01B8 RET ;junk 01B9 XOR CX,DX ;junk 01BB CALL 01B2 ;junk * Decryptor MAIN LOOP 01BE TEST SI,3029 ;junk 01C2 INC DI ;junk 01C3 SBB DI,1E19 ;junk 01C7 MOV DI,0038 ;junk 01CB RCR DI,CL ;junk 01CD MOV BP,1809 ;junk 01D1 NEG BYTE PTR [BX+4969] ;* NEG the byte at [BX + 4969] ; NOTE: original index B977h plus ; 4969h = 102E0h AND FFFFh = 02E0h! ; Which is the start of the ; encrypted code! 01D5 TEST BP,2A37 ;junk 01D9 CMP CX,2B37 ;junk 01DD JMP 01E2 ;junk 01E0 DEC DI ;junk 01E1 RET ;junk 01E2 MOV CL,[BX+4969] ;* Get the NEGed byte into CL 01E6 CMC ;junk 01E7 ROR DI,CL ;junk 01E9 INC BP ;junk 01EA TEST DI,281E ;junk 01EE JZ 01F3 ;junk 01F0 TEST BH,[BX+DI+05] ;junk 01F3 MOV DI,160C ;junk 01F7 SUB BP,BP ;junk 01F9 XOR CX,DX ;* XOR byte with the KEY 01FB TEST BL,[BP+DI+3C] ;junk 01FE JNB 0204 ;junk 0200 ADD BP,0A13 ;junk 0204 CMP [BX+DI],CL ;junk 0206 CALL 01E0 ;junk 0209 CALL 01E0 ;junk 020C DEC DI ;junk 020D AND DI,073A ;junk 0211 DEC AX ;* Decrease the COUNT register 0212 XOR DI,2036 ;junk 0216 NEG BP ;junk 0218 ADC DI,SP ;junk 021A CMC ;junk 021B CMP BL,[BX+SI] ;junk 021D DEC DX ;* Decrease the KEY register 021E ADC BP,1821 ;junk 0222 SHL DI,CL ;junk 0224 CMP AX,1816 ;junk 0228 SHL DI,1 ;junk 022A CMP AL,[BP+DI+1A] ;junk 022D MOV SI,1819 ;junk 0231 ADD SI,063B ;junk 0235 DEC DX ;* Decrease the KEY register 0236 SUB BP,0028 ;junk 023A AND BP,1930 ;junk 023E CLD ;junk 023F ADC BP,2D1D ;junk 0243 SAR DI,CL ;junk |
3Â¥2006-08-23 12:20:27
sdlj8051
½ð³æ (ÖøÃûдÊÖ)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 0.1
- ½ð±Ò: 1149.8
- ºì»¨: 3
- Ìû×Ó: 2254
- ÔÚÏß: 18.1Сʱ
- ³æºÅ: 71297
- ×¢²á: 2005-05-30
- רҵ: µç·Óëϵͳ
¡ï ¡ï
sinapdb(½ð±Ò+2):ллÌṩ£¬»¶Ó³£À´£¡£¡£¡
sinapdb(½ð±Ò+2):ллÌṩ£¬»¶Ó³£À´£¡£¡£¡
|
0245 XCHG CX,DX ;* Swap CX & DX 0247 TEST CX,DX ;junk 0249 MOV SI,CX ;junk 024B XOR SI,030D ;junk 024F SUB DI,311C ;junk 0253 XCHG DL,[BX+4969] ;* Swap [index] & DL ; NOTE: This restores the decrypted byte! 0257 ADD DI,0E13 ;junk 025B CMP BL,[BP+DI+33] ;junk 025E CLD ;junk 025F NOT SI ;junk 0261 MOV SI,3F1C ;junk 0265 XCHG CX,DX ;* Swap CX & DX, restoring the KEY in DL 0267 MOV SI,221A ;junk 026B OR BP,0D2C ;junk 026F MOV DI,231B ;junk 0273 ADD BX,0001 ;* Increase the INDEX register 0277 JMP 0288 ;junk 027A ADC BP,AX ;junk 027C TEST BL,[DI+19] ;junk 027F TEST DI,0321 ;junk 0283 NEG DI ;junk 0285 ROL SI,CL ;junk 0287 RET ;junk 0288 SBB BP,1B0D ;junk 028C XOR BP,2A23 ;junk 0290 CMP DL,3A ;junk 0293 TEST BH,[DI] ;junk 0295 AND AX,AX ;* Test if COUNT is zero 0297 JNZ 02AD ;* Jump to 02ADh if not 0299 CALL 027A ;junk 029C AND DI,291F ;junk 02A0 JA 02A6 ;junk 02A2 MOV DI,0514 ;junk 02A6 ADC SI,1F2A ;junk 02AA JMP 02BC ;* Finished decrypting 02AD JMP 02B2 ;junk 02B0 CLC ;junk 02B1 RET ;junk 02B2 SHL DI,CL ;junk 02B4 CLD ;junk 02B5 ADD SI,2C1A ;junk 02B9 JMP 01BB ;* Jump to MAIN LOOP 02BC TEST BH,BL ;junk 02BE MOV DI,210C ;junk 02C2 SUB SI,1600 ;junk 02C6 CALL 02B0 ;junk 02C9 XOR SI,2F1D ;junk 02CD MOV BP,0430 ;junk 02D1 TEST BH,[DI+362A] ;junk 02D5 OR DI,1C21 ;junk 02D9 STC ;junk 02DA CMP DI,2828 ;junk 02DE CLC ;junk 02DF DEC BP ;junk 02E0 The encrypted code starts here. ;****************** ÒëÂëÆ÷2»ã±àÁÐ±íµ½´Ë½áÊø ******************* ÏÂÃæÊÇÉÏÊöÁ½¸öÒëÂëÆ÷µÄHEXת´¢£¬ÒëÂëÆ÷1ÔÚ×ó±ß£¬ÒëÂëÆ÷2ÔÚÓұߡ£ÕâЩת´¢ÏÔʾºÜÄÑ´ÓËüÃǵ±ÖÐÕÒ³öÏàͬµÄÌØÕ÷£¬Õâ¾ÍÊǶà̬±äÐÎÒýÇæ×îÖ÷ÒªµÄÄ¿µÄ!Òò´Ë£¬ÎªÁ˼ì²â£¬Äã±ØÐëдһ¸ö³ÌÐò£¬³¢ÊÔʹÓÃÖÇÄܵķ½·¨ÕÒ³ö¿´ÆðÀ´Ïñ¶à̬±äÐÎÒýÇæÒëÂëÆ÷µÄ¶«Î÷¡£ÕâºÜÈÝÒײúÉúÎ󱨣¬»òÕßÔÚijЩÇé¿öÏ£¬ÍêÈ«ÒÅ©ÁËÒëÂëÆ÷£¡ HEX DUMP OF ENCRYPTOR 1, 368 bytes HEX DUMP OF ENCRYPTOR 2, 480 bytes ¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D ¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D 7901FCD3FE81FD0807F97F020BF181F7 F7D6846B0F47FC81D72A137A0481CF2E 213281C5050881E51235D3EEC7C6041B 334684C5E909007A0481FA0919D3DFC3 D3FF81D6062581D7111F1B2E3E0F81FD 4785FDE90D00F7C7240EF7C73A0923FC 1E3F4EF7D781E63D084681DF0301BA91 383AC3C7C5280C84F5F7C5161CD3CD74 17FC720285F01BFC853E1B25840CD1E5 04843703FC848C3534C7C5082E85CFFC BB7D01F5C7C718127002D1DFF939FD8C C7C6313881E53E36D3CFF87906D1FE81 C8846F1781DD073147D1DD8ED8033E04 DF083381DF2B36B8DB0781E71E0FE911 3BB0507304C7C63914720213F8E90500 00C7C7312F81F9122281DE142E849C1D C7C5361BC3D1DEBB2D842BF181CF0F0B 34C380FF19BB77B984852C07F7C70623 C7C53E1ED3D781ED122E033E2A2ED3C6 D1EE8CCAE8DAFFF7C61014F8D3E78EDA 8A8F437E740684BD3B2B3812D1C781DF F7DEE8CCFF84AB0F07B28DC7C7303AE9 3A264AE8CAFF8BF981D52E282AC8C7C6 0700760147F7D7F5C333CAE8F4FFF7C6 2A37F7C5103AE8B7FF81D61713FC4081 29304781DF191EC7C73800D3DFC7C509 F63D20E90B004FF52B2E243681F60002 18F69F6949F7C5372A81F9372BE90200 C3387C1381EA010081F8170581ED1628 4FC38A8F6949F5D3CF45F7C71E287403 81E6070881EE032ED1CD47D3DE84EE81 847905C7C70C162BED33CA845B3C7304 ED2610888F437E730481F7301BFC81C6 81C5130A3809E8D7FFE8D4FF4F81E73A 383C4381F72C0BE9150081CD181C7E01 074881F73620F7DD13FCF53A184A81D5 4D81D6320E81E72215387A36D1C6C3D1 2118D3E781F81618D1E73A431AC7C619 E7D1EF4A7509840B81D52D01E91C0045 1881C63B064A81ED280081E53019FC81 730481FB2E0E85FE81DE3332B98A01D1 D51D2DD3FF87CA85CA8BF181F60D0381 C72BFBD1EF84992E1C51C3C7C61F213A EF1C318697694981C7130E3A5B33FCF7 1981ED332DC7C5353733F68B2E380A47 D6C7C61C3F87CAC7C61A2281CD2C0DC7 C71B2381C30100E90E0013E8845D19F7 C72103F7DFD3C6C381DD0D1B81F5232A 80FA3A843D23C07514E8DEFF81E71F29 7704C7C7140581D62A1FE90F00E90200 F8C3D3E7FC81C61A2CE9FFFE84FBC7C7 0C2181EE0016E8E7FF81F61D2FC7C530 0484BD2A3681CF211CF981FF2828F84D àÅ£¬ÎÒÏ£ÍûÕâÆª¶ÌÎÄÄÜʹÄãÀí½â¶à̬±äÐÎÒýÇæµÄ¹¤×÷ÔÀí£¬´ÓÖÐÊܵ½ÆôµÏ£¬»ñµÃÁé¸Ð£¬´Ó¶øÐ´³ö×Ô¼ºµÄ¶«Î÷£¬ÎÒµÄÏ£ÍûÂä¿ÕÁËÂ𣿠|
4Â¥2006-08-23 12:20:38
sdlj8051
½ð³æ (ÖøÃûдÊÖ)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 0.1
- ½ð±Ò: 1149.8
- ºì»¨: 3
- Ìû×Ó: 2254
- ÔÚÏß: 18.1Сʱ
- ³æºÅ: 71297
- ×¢²á: 2005-05-30
- רҵ: µç·Óëϵͳ
5Â¥2006-12-26 00:02:26
1
|
6Â¥2006-12-26 09:48:37
gph-rabbit
½ð³æ (СÓÐÃûÆø)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ½ð±Ò: 6187.4
- Ìû×Ó: 141
- ÔÚÏß: 85.2Сʱ
- ³æºÅ: 283155
- ×¢²á: 2006-10-08
- רҵ: ÐÅÏ¢°²È«
7Â¥2006-12-29 00:53:03













»Ø¸´´ËÂ¥