با سلام
من تو این مایه ها نیستم که بخوام به برنامه استاد گرامی ایراد بگیرم
ولی متاسفانه یا خوشبختانه برنامه لود شده تو رم به راحتی توسط Win hex دامپ می شه ، اصلاحش هم کار سختی نیست ، چون با دیباگ کردن پروسه پدر تو SoftICE میشه فهمید که پروسه بابا کی و چه جوری فایل رو تو رم می نویسه ، با این روش می تونم OEP رو پیدا کنم و .....
تمامی کاری که تایمر پدر برای اجرا کردن پسر خودش انجام می ده ، البته به زبان شیرین اسمبلی !
loc_0906A55C: push ebp
loc_0906A55D: mov ebp, esp
loc_0906A55F: mov ecx, 00000004h
loc_0906A564: push 00000000h
loc_0906A566: push 00000000h
loc_0906A568: dec ecx
loc_0906A569: jnz 906A564h
loc_0906A56B: push ecx
loc_0906A56C: push ebx
loc_0906A56D: push esi
loc_0906A56E: mov var_4, eax
loc_0906A571: mov esi, 0906EC40h ; 'MZP'
loc_0906A576: xor eax, eax
loc_0906A578: push ebp
loc_0906A579: push 0906A86Dh ; '鎑ùÿëë^[‹å]Ã'
loc_0906A57E: push fs:[eax]
loc_0906A581: mov fs:[eax], esp
loc_0906A584: call 09002A64h
loc_0906A589: mov eax, var_4
loc_0906A58C: mov eax, [eax+00000308h]
loc_0906A592: xor edx, edx
loc_0906A594: call 09029100h
loc_0906A599: mov dl, 01h
loc_0906A59B: mov eax, [90120D0h]
loc_0906A5A0: call 0900327Ch
loc_0906A5A5: mov [906EC34h], eax
loc_0906A5AA: mov dl, 01h
loc_0906A5AC: mov eax, [90120D0h]
loc_0906A5B1: call 0900327Ch
loc_0906A5B6: mov [906EC38h], eax
loc_0906A5BB: mov dl, 01h
loc_0906A5BD: mov eax, [90120D0h]
loc_0906A5C2: call 0900327Ch
loc_0906A5C7: mov var_8, eax
loc_0906A5CA: mov dl, 01h
loc_0906A5CC: mov eax, [90120D0h]
loc_0906A5D1: call 0900327Ch
loc_0906A5D6: mov ebx, eax
loc_0906A5D8: mov eax, ebx
loc_0906A5DA: call 09016148h
loc_0906A5DF: push 0906A884h ; 'MY_EXE'
loc_0906A5E4: push 0906A88Ch ; 'ANYOL'
loc_0906A5E9: mov ecx, [0906E664h] ;
loc_0906A5EF: mov dl, 01h
loc_0906A5F1: mov eax, [901214Ch]
loc_0906A5F6: call 0901631Ch
loc_0906A5FB: mov edx, ebx
loc_0906A5FD: call 090160ACh
loc_0906A602: mov eax, [906EC34h]
loc_0906A607: call 09016148h
loc_0906A60C: mov eax, [906EC38h]
loc_0906A611: call 09016148h
loc_0906A616: mov eax, var_8
loc_0906A619: call 09016148h
loc_0906A61E: push 00000078h
loc_0906A620: call 0900CB88h ; Sleep(%x1)
loc_0906A625: mov edx, [esi]
loc_0906A627: mov eax, [906EC34h]
loc_0906A62C: call 09016198h
loc_0906A631: mov eax, [906EC3Ch]
loc_0906A636: cdq
loc_0906A637: push edx
loc_0906A638: push eax
loc_0906A639: mov eax, [906EC34h]
loc_0906A63E: call 090159E8h
loc_0906A643: mov eax, [906EC34h]
loc_0906A648: mov edx, [eax]
loc_0906A64A: call [edx]
loc_0906A64C: push edx
loc_0906A64D: push eax
loc_0906A64E: mov eax, [906EC3Ch]
loc_0906A653: cdq
loc_0906A654: sub [esp], eax
loc_0906A657: sbb [esp+04h], edx
loc_0906A65B: pop eax
loc_0906A65C: pop edx
loc_0906A65D: push edx
loc_0906A65E: push eax
loc_0906A65F: mov edx, [0906EC34h] ;
loc_0906A665: mov eax, [906EC38h]
loc_0906A66A: call 09015C64h
loc_0906A66F: mov eax, 0098967Fh
loc_0906A674: call 09002CCCh
loc_0906A679: lea edx, var_10
loc_0906A67C: call 090080A0h
loc_0906A681: mov edx, var_10
loc_0906A684: mov eax, esi
loc_0906A686: call 090040D4h
loc_0906A68B: mov eax, var_4
loc_0906A68E: mov eax, [eax+0000030Ch]
loc_0906A694: push [eax+40h]
loc_0906A697: push 0906A89Ch
loc_0906A69C: push [esi]
loc_0906A69E: lea eax, var_14
loc_0906A6A1: mov edx, 00000003h
loc_0906A6A6: call 09004400h
loc_0906A6AB: mov edx, var_14
loc_0906A6AE: mov eax, [906EC38h]
loc_0906A6B3: call 090160C4h
loc_0906A6B8: mov eax, var_4
loc_0906A6BB: mov eax, [eax+0000030Ch]
loc_0906A6C1: push [eax+40h]
loc_0906A6C4: push 0906A89Ch
loc_0906A6C9: push [esi]
loc_0906A6CB: lea eax, var_18
loc_0906A6CE: mov edx, 00000003h
loc_0906A6D3: call 09004400h
loc_0906A6D8: mov eax, var_18
loc_0906A6DB: call 09069FB4h
loc_0906A6E0: push 00000064h
loc_0906A6E2: call 0900CB88h ; Sleep(%x1)
loc_0906A6E7: mov eax, [ebx+04h]
loc_0906A6EA: call 0906A194h
loc_0906A6EF: xor eax, eax
loc_0906A6F1: push ebp
loc_0906A6F2: push 0906A83Bh
loc_0906A6F7: push fs:[eax]
loc_0906A6FA: mov fs:[eax], esp
loc_0906A6FD: mov eax, var_4
loc_0906A700: mov eax, [eax+0000030Ch]
loc_0906A706: push [eax+40h]
loc_0906A709: push 0906A89Ch
loc_0906A70E: push [esi]
loc_0906A710: push 0906A8A8h ; '.DEC'
loc_0906A715: lea eax, var_1C
loc_0906A718: mov edx, 00000004h
loc_0906A71D: call 09004400h
loc_0906A722: mov edx, var_1C
loc_0906A725: mov eax, var_8
loc_0906A728: call 09016198h
loc_0906A72D: mov eax, var_4
loc_0906A730: mov eax, [eax+0000030Ch]
loc_0906A736: push [eax+40h]
loc_0906A739: push 0906A89Ch
loc_0906A73E: push [esi]
loc_0906A740: push 0906A8A8h ; '.DEC'
loc_0906A745: lea eax, var_20
loc_0906A748: mov edx, 00000004h
loc_0906A74D: call 09004400h
loc_0906A752: mov eax, var_20
loc_0906A755: call 09008520h
loc_0906A75A: mov eax, var_4
loc_0906A75D: mov eax, [eax+0000030Ch]
loc_0906A763: push [eax+40h]
loc_0906A766: push 0906A89Ch
loc_0906A76B: push [esi]
loc_0906A76D: lea eax, var_24
loc_0906A770: mov edx, 00000003h
loc_0906A775: call 09004400h
loc_0906A77A: mov eax, var_24
loc_0906A77D: call 09008520h
loc_0906A782: mov eax, var_8
loc_0906A785: call 090159C8h
loc_0906A78A: mov ebx, eax
loc_0906A78C: mov byte ptr var_9, 5Ah
loc_0906A790: push 00000000h
loc_0906A792: push 00000001h
loc_0906A794: mov eax, var_8
loc_0906A797: call 090159E8h
loc_0906A79C: lea edx, var_9
loc_0906A79F: mov ecx, 00000001h
loc_0906A7A4: mov eax, var_8
loc_0906A7A7: call 09015C2Ch
loc_0906A7AC: mov byte ptr var_9, 50h
loc_0906A7B0: push 00000000h
loc_0906A7B2: push 00000100h
loc_0906A7B7: mov eax, var_8
loc_0906A7BA: call 090159E8h
loc_0906A7BF: lea edx, var_9
loc_0906A7C2: mov ecx, 00000001h
loc_0906A7C7: mov eax, var_8
loc_0906A7CA: call 09015C2Ch
loc_0906A7CF: mov byte ptr var_9, 45h
loc_0906A7D3: push 00000000h
loc_0906A7D5: push 00000101h
loc_0906A7DA: mov eax, var_8
loc_0906A7DD: call 090159E8h
loc_0906A7E2: lea edx, var_9
loc_0906A7E5: mov ecx, 00000001h
loc_0906A7EA: mov eax, var_8
loc_0906A7ED: call 09015C2Ch
loc_0906A7F2: mov eax, ebx
loc_0906A7F4: cdq
loc_0906A7F5: push edx
loc_0906A7F6: push eax
loc_0906A7F7: mov eax, var_8
loc_0906A7FA: call 090159E8h
loc_0906A7FF: push 00000064h
loc_0906A801: call 0900CB88h ; Sleep(%x1)
loc_0906A806: mov eax, var_8
loc_0906A809: mov eax, [eax+04h]
loc_0906A80C: call 0906A194h
loc_0906A811: xor eax, eax
loc_0906A813: pop edx
loc_0906A814: pop ecx
loc_0906A815: pop ecx
loc_0906A816: mov fs:[eax], edx
loc_0906A819: push 0906A842h
loc_0906A81E: mov eax, [906EC34h]
loc_0906A823: call 090032ACh
loc_0906A828: mov eax, [906EC38h]
loc_0906A82D: call 090032ACh
loc_0906A832: mov eax, var_8
loc_0906A835: call 090032ACh
loc_0906A83A: ret
}
end;