Teşekkürler hocam bildiğim en iyi kaynak bu, türkçe olarak, derneğin kurs notları, ben de bu kursta grdüm ilk kez zaten. http://www.kaanaslan.com/resource/document/download_file. php?file_id=18

Sorunu yanlış anlamadıysam reshacker işini grür.

Tuğberk yine dktürmüş. Dküman niteliğinde cevap vermiş teşekkür ediyorum kendisine ileride benimde işime yarayacak bir cevap açıkçası. Birde tuğberk x86 için assembly ğrenmek istiyorum. Bunun için nerebileceğin dküman var mı acaba? Türkçe olursa daha iyi olur. Kitapta olabilir açıkçası. Bu imzayı her grdüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı smürmektir

Assembly ile Exe nin rsrc blümündeki bir dosyayı nasıl dışarı çıkartabilirim? (NOT: Başka uygulamanın değil kendi exe sinin.

Hocam C ile kullanımı aşağıda, hata kontrolünü es geçtim, HMODULE hModule = GetModuleHandle ; HRSRC hResource = FindResource ; HGLOBAL hMemory = LoadResource ; DWORD dwResSize = SizeofResource ; LPVOID lpResMem = LockResource ; // Burada artık resource lpResMem de boyutu da dwResSize da FreeResource ; Nasm ile api çağırmak çok basittir tek sorun link etmek için C derleyicisi yüklü olması lazım bilgisayarında. Apiyi çağırırken _FindResource@8 olarak yazman gerekiyor stdcall fonksiyonları bu şekilde grünür dll de, @ den sonrası parametre uzunluğu, 2 parametre alan fonksiyon için 8, parametre türü 4 bayttan farklı olabilir dikkat etmek lazım, neyseki api bulunamazsa linker hata verir zaten. Nasm ile MessageBox kullanımı için küçük bir kod gstereyim, geri kalan hepsi aynı zaten. extern _MessageBoxA@16 extern _ExitProcess@4 global _entry section. data mesaj db "selam moruk", 0x0 baslik db "nabersin", 0x0 section. text _entry: push 0 push baslik push mesaj push 0 call _MessageBoxA@16 push 0 call _ExitProcess@4 extern, bu fonksiyonlar dışardan gelcek demek, . data sectionunda yazılacak stringler var, bunları ters sırada push ediyoruz ve call ile apiyi çağırıyoruz, en son ExitProcess(0) ile çıkıyoruz. Derlemek basit: nasm kod. asm -f win32 sorun yoksa kod. obj çıkar, bundan sonrası link, mingw kullanıyorsan, C:\MinGW\bin\ld. exe kod. obj -e entry -subsystem windows -lkernel32 -luser32 -o kod. exe aVisual C++ kullanıyorsan malesef link. exe direkt çalışmıyor dll bağımlılıkları current directory muhabbetleri yüzünden, visual studio tools klasründe command prompt var cmd. exe simgesinde yine, onu çalıştır obj dosyasının olduğu dizine git, link. exe çalıştırılabilri bu şekilde. link kod. obj kernel32. lib user32. lib /entry:entry /subsystem:windows İki durumda da kod. exe çıkacak, bu kadar. Bence mingw yi indir kur, nasm ı da indir, C:\MinGW\bin klasrüne at, bu klasrü de path a ekle, masaüstünde rahat rahat çalış. Asm ile devam etmek istiyorsan tabi, şu szü hep sylerim :) "C# ile yapabileceğin şeyler için değil C ile bile yapamayacağın şeyler için assembly kullan" aksi halde faydasından çok zararını grürsün, kolay gelsin Teşekkürler, Bir ara ayrıntılı inceleyeceğim. Ya aslında forumda programcı diye geçinen en az 100 kişi vardır ama sorsan sadece C# bilip kendini programcı zanneden tipler. Bu tür konularda gerçek programcılar ortaya çıkıyor ;).

Hocam C ile kullanımı aşağıda, hata kontrolünü es geçtim, HMODULE hModule = GetModuleHandle ; HRSRC hResource = FindResource ; HGLOBAL hMemory = LoadResource ; DWORD dwResSize = SizeofResource ; LPVOID lpResMem = LockResource ; // Burada artık resource lpResMem de boyutu da dwResSize da FreeResource ; Nasm ile api çağırmak çok basittir tek sorun link etmek için C derleyicisi yüklü olması lazım bilgisayarında. Apiyi çağırırken _FindResource@8 olarak yazman gerekiyor stdcall fonksiyonları bu şekilde grünür dll de, @ den sonrası parametre uzunluğu, 2 parametre alan fonksiyon için 8, parametre türü 4 bayttan farklı olabilir dikkat etmek lazım, neyseki api bulunamazsa linker hata verir zaten. Nasm ile MessageBox kullanımı için küçük bir kod gstereyim, geri kalan hepsi aynı zaten. extern _MessageBoxA@16 extern _ExitProcess@4 global _entry section. data mesaj db "selam moruk", 0x0 baslik db "nabersin", 0x0 section. text _entry: push 0 push baslik push mesaj push 0 call _MessageBoxA@16 push 0 call _ExitProcess@4 extern, bu fonksiyonlar dışardan gelcek demek, . data sectionunda yazılacak stringler var, bunları ters sırada push ediyoruz ve call ile apiyi çağırıyoruz, en son ExitProcess(0) ile çıkıyoruz. Derlemek basit: nasm kod. asm -f win32 sorun yoksa kod. obj çıkar, bundan sonrası link, mingw kullanıyorsan, C:\MinGW\bin\ld. exe kod. obj -e entry -subsystem windows -lkernel32 -luser32 -o kod. exe aVisual C++ kullanıyorsan malesef link. exe direkt çalışmıyor dll bağımlılıkları current directory muhabbetleri yüzünden, visual studio tools klasründe command prompt var cmd. exe simgesinde yine, onu çalıştır obj dosyasının olduğu dizine git, link. exe çalıştırılabilri bu şekilde. link kod. obj kernel32. lib user32. lib /entry:entry /subsystem:windows İki durumda da kod. exe çıkacak, bu kadar. Bence mingw yi indir kur, nasm ı da indir, C:\MinGW\bin klasrüne at, bu klasrü de path a ekle, masaüstünde rahat rahat çalış. Asm ile devam etmek istiyorsan tabi, şu szü hep sylerim :) "C# ile yapabileceğin şeyler için değil C ile bile yapamayacağın şeyler için assembly kullan" aksi halde faydasından çok zararını grürsün, kolay gelsin

Sistem servislerini kullanmadan yapamazsın hocam, internette assembly ğreten dkümanlar dos zamanından kalma ve 8086 dkümanları olduğu için assembly tek başına herşeyi yapar gibi bir izlenime kapılıyor okuyanlar, o zamanlar yleydi int 21h ile yapılamayacak şey yoktu. Hangi apileri kullanman lazım? sırayla, FindResource -> LoadResource -> SizeofResource -> LockResource -> -> FreeResource. Assembler olarak nasm neririm ama malesef linkeri yok, eğer bilgisayarında mingw ya da visual C++ varsa onların linkerini kullanabilirsin, ben yle yapıyorum. Yoksa mecbur masm32 indireceksin ki hiç haz etmem kendisinden. Nasm tek başına 700kb lik bir exeden ibaretken bu tüm dünyayı kurar bilgisayara . Aradığım cevap buydu teşekkürler. Şimdi sana soracağım şey şu abi; Native Assembly yani ollydbg ile disassemble edilen exe ye bu API ları kullanarak kendi içerisinde bulunan resource dosyasını nasıl çıkarırız? Findresource gibi bir sıra vermişsin tam olarak kullanımı var mıdır acaba?

Caliber, pcdoktor636 Teşekkürler yardımlar için, bir nceki mesajımı okuyup daha fazla yardımcı olabilirsiniz.

Sistem servislerini kullanmadan yapamazsın hocam, internette assembly ğreten dkümanlar dos zamanından kalma ve 8086 dkümanları olduğu için assembly tek başına herşeyi yapar gibi bir izlenime kapılıyor okuyanlar, o zamanlar yleydi int 21h ile yapılamayacak şey yoktu. Hangi apileri kullanman lazım? sırayla, FindResource -> LoadResource -> SizeofResource -> LockResource -> -> FreeResource. Assembler olarak nasm neririm ama malesef linkeri yok, eğer bilgisayarında mingw ya da visual C++ varsa onların linkerini kullanabilirsin, ben yle yapıyorum. Yoksa mecbur masm32 indireceksin ki hiç haz etmem kendisinden. Nasm tek başına 700kb lik bir exeden ibaretken bu tüm dünyayı kurar bilgisayara .

Şunu bi dene baba: http://www.at4re.com/download. php?view.135 Caliber tarafından 02/Oca/13 20:27 tarihinde düzenlenmiştir Tedbirsiz abdest bozmaya oturan, domala domala taş arar.