FEMAP v8.0a

ftp://ftp.sdrc.com/pub/femap/FEMAPv80.exe (~110Mb)

Sonlu elemanlar yontemi ile cozulecek modelleri olusturan bir muhendislik programi. Bircok “solver” program icin cikti secenekleri var. (msc-nastran, ne-nastran, abaqus etc..) Kullanimi kolay gorunen, ama bilgi birikimi ve tecrube gerektiren bir program. Install sirasinda “Full version” seciyoruz. (dongle gerekli oldugunu belirtiyor). Programi calistirinca ve “Security Device not Found” uyarisi ile karsilasiyoruz. Demo modunda 300 nokta sinirlamasi oldugunu belirtiyor. [bpio –h 378] ve programi yeniden calistiralim. Simdi Soft-ice dayiz. [bc*] ve F12’ye basmaya basliyoruz. 15’inci F12’den sonra uyari mesaji cikiyor. 14’uncu F12’de ise cok bekliyor. Yani butun is 14 ile 15’inci F12 ler arasinda donuyor.

 
* Reference To: AUTH_80.FEMAP_Authorization, Ord:0002h
:008CBB6A E877D81A00              Call 00A793E6
:008CBB6F 8945FC                  mov dword ptr [ebp-04], eax <-- F12 ile indik
:008CBB72 8B4508                  mov eax, dword ptr [ebp+08]
:008CBB75 25FF000000              and eax, 000000FF
...

14’uncu F12’den sonra F10 ile devam edelim. Biraz F10 idmanindan sonra uyari tekrar karsimizda. Bu uyariyi bize getiren ise, 008CC580 deki CALL 005B753E cagrisi.

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:008CBE2C(C), :008CBE3C(C), :008CBF25(C), :008CC277(U)
:008CC55D 8B4510                  mov eax, dword ptr [ebp+10]
:008CC560 25FF000000              and eax, 000000FF
:008CC565 85C0                    test eax, eax
:008CC567 743F                    je 008CC5A8      <-- Dongle var mi ?
:008CC569 8B4D08                  mov ecx, dword ptr [ebp+08]
:008CC56C 81E1FF000000            and ecx, 000000FF
:008CC572 85C9                    test ecx, ecx
:008CC574 7414                    je 008CC58A 
:008CC576 6863290000              push 00002963
:008CC57B 6840010000              push 00000140
:008CC580 E8B9AFCEFF              call 005B753E      <-- Dongle yok
...

Buradaki je 008CC58A dongle takili ise asagidaki bolume gonderiyor. Once burayi atlatalim. Ben eax degerine 0 atayarak bu isi hallettim.

 
:008CC55D B800000000              mov eax, 00000000
:008CC562 90                      nop
:008CC563 90                      nop
:008CC564 90                      nop
:008CC565 85C0                    test eax, eax
:008CC567 743F                    je 008CC5A8

Artik her seferinde 8CC5A8 adresine gelecegiz.

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:008CC567(C), :008CC588(U), :008CC594(C)
:008CC5A8 8B4508                  mov eax, dword ptr [ebp+08]
:008CC5AB 25FF000000              and eax, 000000FF
:008CC5B0 85C0                    test eax, eax
:008CC5B2 750C                    jne 008CC5C0                    <-- Yanlis Dongle
:008CC5B4 33C9                    xor ecx, ecx                    <-- Dogru Dongle
:008CC5B6 8A0D18F4AC00            mov cl, byte ptr [00ACF418]
:008CC5BC 85C9                    test ecx, ecx
:008CC5BE 7410                    je 008CC5D0                   

8CC5C0 a gitmemek icin eax degerini 1 yapiyoruz ve 8CC5B4 e kadar NOP luyoruz.

:008CC5A8 B801000000              mov eax, 00000001
:008CC5AD 90                      nop
:008CC5AE 90                      nop
:008CC5AF 90                      nop
:008CC5B0 90                      nop
:008CC5B1 90                      nop
:008CC5B2 90                      nop
:008CC5B3 90                      nop
:008CC5B4 33C9                    xor ecx, ecx
:008CC5B6 8A0D18F4AC00            mov cl, byte ptr [00ACF418]
:008CC5BC 85C9                    test ecx, ecx
:008CC5BE 7410                    je 008CC5D0
 
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:008CC5B2(C)
|
:008CC5C0 C6052CF4AC0000          mov byte ptr [00ACF42C], 00
:008CC5C7 8B55E8                  mov edx, dword ptr [ebp-18]
:008CC5CA 8915705DAD00            mov dword ptr [00AD5D70], edx
 
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:008CC5BE(C)
|
:008CC5D0 EB29                    jmp 008CC5FB

Yaptigimiz bu 2 patch ile dongle check rutinini atlattik. Menuden Help --> About --> Options --> Limit yok. Yalniz programin hizli kullanimini saglayan Icon menu (ustteki) pasif durumda. Program bu haliyle 8CC5D0 adresinden 8CC5FB ye atliyor. 8CC5C0 bolumune ugramiyor. Buradaki mov atamalari ne ise yariyor ? 8CC5BE adresini NOP luyoruz. Boylece program 8CC5C0 bolumune ugrayacak. Bu degisiklik bize ne getirdi ? Menuden Help --> About --> Options --> 301 Node Limit. Ama Icon menu calisiyor. Hangi mov komutu limiti kaldiriyor ? Ben deneme yanilma yontemini kullandim.

 

008CC5C0
008CC5C7 008CC5CA Sonuc
NOP Degisiklik yok Degisiklik yok Icon Menu pasif, 301 Node siniri
Degisiklik yok NOP Degisiklik yok Icon Menu aktif, 535696422 Node siniri
Degisiklik yok Degisiklik yok NOP Icon Menu aktif, No Limit

Bize gerekli olan 008CC5CA adresini NOP lamak. Limit yok ve Icon Menu aktif durumda.

Deneme icin programin menulerini kullanalim, bir dosya acalim. \Examples\Ch10done.mod ->Bir uyari mesaji cikti.
“Your system is not authorized for the Parasolid Interface Module”
Demek ki tam anlami ile dongle taklidini yapamadik.

[bpx messageboxa] ve tekrar dosyayi aciyoruz. Bir defa F11 ve uyari mesaji geldi. F12 ile bu mesaji cagiran rutini buluyoruz.

 
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:008D2B51(C)
:008D2B98 33C0                    xor eax, eax
...
:008D2BBA 6840010000              push 00000140
:008D2BBF E87A49CEFF              call 005B753E          <-- Hatayi cagiran rutin
:008D2BC4 83C408                  add esp, 00000008      <-- F12 ile buraya indik
:008D2BC7 C60516A4A90000          mov byte ptr [00A9A416], 00
:008D2BCE 32C0                    xor al, al
...

Bu bolum 8D2B51 den refere edilmis durumda.

* Referenced by a CALL at Addresses:
|:00598F9F   , :00599C9D   , :0059D1E3   , :0059F403   , :005A07B4   
|:005F6AC5   , :005FCBAA   , :005FCDD8   , :005FD01B   , :00607A5B   
|
:008D2B41 55                      push ebp
:008D2B42 8BEC                    mov ebp, esp
:008D2B44 51                      push ecx
:008D2B45 A150F4AC00              mov eax, dword ptr [00ACF450]
:008D2B4A 8945FC                  mov dword ptr [ebp-04], eax
:008D2B4D 837DFC00                cmp dword ptr [ebp-04], 00000000
:008D2B51 7445                    je 008D2B98       <-- Hatayi cagiran rutine gidiyor
:008D2B53 837DFC01                cmp dword ptr [ebp-04], 00000001
:008D2B57 7402                    je 008D2B5B
:008D2B59 EB77                    jmp 008D2BD2

Bu rutin bircok adresten cagiriliyor. Ve 8D2B51 den sicrayarak hata mesaji verdiriliyor. Cozumu 8D2B51 adresini NOP lamak.

Hersey duzeldi gibi. Save de calisiyor. Programin menulerini kullanmaya devam edelim.
File --> import --> Geometry --> Ch16hexmesh.x_t dosyasini secelim. Bir hata mesaji daha.
“Your system is not authorized for the Parasolid Interface”

Ilk hatayi cozmede kullandigimiz yontemi deneyelim. [bpx messageboxa] ve tekrar dosyayi aciyoruz. Bir defa F11 ve uyari mesaji geldi. F12 ile bu mesaji cagiran rutini buluyoruz.

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00A644B3(C)
|
:00A644D0 68B12A0000              push 00002AB1
:00A644D5 6840010000              push 00000140
:00A644DA E85F30B5FF              call 005B753E          <-- Hatayi cagiran rutin
:00A644DF 83C408                  add esp, 00000008      <-- F12 ile buraya geldik

Bu bolum ise A644B3 den refere edilmis.

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00A6448E(U)
...
:00A644B1 85C0                    test eax, eax
:00A644B3 741B                    je 00A644D0      <-- Hatayi cagiran rutine gidiyor
:00A644B5 6A00                    push 00000000
...
 

Cozum A644B3 adresini NOP lamak.
Programi test etmek icin ornek model olusturdum. Butun fonksiyonlar hatasiz calisti. Solver programlar icin de ciktiyi hatasiz tamamladi. Post processing islemlerini de yapiyor.
Sonradan bir hata ile daha karsilastim. Ayni yontemi kullandim.
[bpx messageboxa] --> F5 --> Hata Mesajindan once Soft-Ice dayiz --> F11 --> OK --> F12
Boylece hatayi cagiran rutini buluyoruz. Buraya nereden geldigine bakip Patch yapiyoruz. Ornek ;
“Your system is not authorized for the ACIS Interface” <-- A6449A <-- A64473
“Your system is not authorized for the ACIS Interface Module” <-- 8D2B83 <-- 8D2B57
Menuden Help --> About --> Options --> Avaible Module --> “All FEA Interface”
Bizde eksik kalan bolum burasi. Parasolid, ACIS, CATIA vb.. interface leri de gormemiz gerekirdi. Yaptigimiz patch lerle bu eksikligimizi gideriyoruz.

Not: 8CC567 adresini jmp 8CC5C0 olarak da patch edebiliriz.

amois